Commit graph

856 commits

Author SHA1 Message Date
gambas
517fd52b20 Add Mouse.Click property and fix gb.gtk3 style methods.
[GB.GTK]
* NEW: Mouse.Click is a new property that returns the click index in a multi-click event.
* NEW: Style.Name is now lowercase.

[GB.GTK3]
* NEW: Mouse.Click is a new property that returns the click index in a multi-click event.
* NEW: Style.Name is now lowercase.
* BUG: Fix Style.PaintCheck() and Style.PaintArrow() for GTK+ >= 3.14.
2020-05-19 22:23:02 +02:00
gambas
a520d12ef4 Application.DarkTheme is a new property that returns if the current color scheme is dark.
[GB.GTK]
* NEW: Application.DarkTheme is a new property that returns if the current color scheme is dark.

[GB.GTK3]
* NEW: Application.DarkTheme is a new property that returns if the current color scheme is dark.

[GB.QT4]
* NEW: Application.DarkTheme is a new property that returns if the current color scheme is dark.

[GB.QT5]
* NEW: Application.DarkTheme is a new property that returns if the current color scheme is dark.
2020-05-18 13:23:27 +02:00
gambas
c443337973 The Window State event is correctly raised now, and the state properties are now correctly synchronized.
[GB.GTK]
* BUG: The Window State event is correctly raised now, and the state properties are now correctly synchronized.

[GB.GTK3]
* BUG: The Window State event is correctly raised now, and the state properties are now correctly synchronized.
2020-04-23 19:05:48 +02:00
gambas
ee81637c72 Window: Add a State event that is raised when the window is minimized, maximized or set to fullscreen.
[GB.GTK]
* NEW: Window: Add a State event that is raised when the window is minimized, maximized or set to fullscreen.

[GB.GTK3]
* NEW: Window: Add a State event that is raised when the window is minimized, maximized or set to fullscreen.

[GB.QT4]
* NEW: Window: Add a State event that is raised when the window is minimized, maximized or set to fullscreen.

[GB.QT5]
* NEW: Window: Add a State event that is raised when the window is minimized, maximized or set to fullscreen.
2020-04-21 08:39:07 +02:00
gambas
e71c1c8e5f Printer.Paper now works as expected.
[GB.GTK]
* BUG: Printer.Paper now works as expected.

[GB.GTK3]
* BUG: Printer.Paper now works as expected.
2020-02-14 00:45:36 +01:00
gambas
ccf1491037 Fix Drag() that was returning the drag frame instead of the target control.
[GB.GTK]
* BUG: Fix Drag() that was returning the drag frame instead of the target control.

[GB.GTK3]
* BUG: Fix Drag() that was returning the drag frame instead of the target control.

[GB.GUI.BASE]
* BUG: Fix Drag() that was returning the drag frame instead of the target control.

[GB.QT4]
* BUG: Fix Drag() that was returning the drag frame instead of the target control.

[GB.QT5]
* BUG: Fix Drag() that was returning the drag frame instead of the target control.
2020-01-24 08:12:01 +01:00
gambas
da2db608bf TextBox: Add Placeholder property.
[GB.GTK]
* NEW: TextBox: Add Placeholder property. Beware that it does nothing as GTK+2 entry widget does not support placeholder text.

[GB.GTK3]
* NEW: TextBox: Add Placeholder property.

[GB.QT4]
* NEW: TextBox: Add Placeholder property.

[GB.QT5]
* NEW: TextBox: Add Placeholder property.
2020-01-24 08:08:42 +01:00
gambas
63000a27fe WAIT NEXT is a new instruction that waits for the next event and process it.
[INTERPRETER]
* NEW: WAIT NEXT is a new instruction that waits for the next event and process it.

[COMPILER]
* NEW: Support for the new WAIT NEXT instruction.

[GB.GTK]
* NEW: Support for the new WAIT NEXT instruction.

[GB.GTK3]
* NEW: Support for the new WAIT NEXT instruction.

[GB.QT4]
* NEW: Support for the new WAIT NEXT instruction.

[GB.QT5]
* NEW: Support for the new WAIT NEXT instruction.
2020-01-02 13:08:45 +01:00
gambas
4771af3b27 TextBox and TextArea KeyPress events cannot be stolen by other controls anymore.
[GB.GTK]
* BUG: TextBox and TextArea KeyPress events cannot be stolen by other controls anymore.

[GB.GTK3]
* BUG: TextBox and TextArea KeyPress events cannot be stolen by other controls anymore.
2019-12-19 08:59:55 +01:00
Laurent Carlier
f1deb8e330 Remove register keyword, deprecated, now reserved keyword with C++17
Fixes "warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]"
with clang

https://en.cppreference.com/w/cpp/keyword/register
2019-10-30 06:53:09 +00:00
gambas
65d2b783fe Paint.TextHeight is a new property that returns the height of one line of text, and Paint.FontScale is now "transparent".
[GB.DRAW]
* NEW: Paint.TextHeight is a new property that returns the height of one line of text. This is not the same as Paint.Font.Height, as the device resolution is taken into account.

[GB.GTK]
* NEW: Paint.FontScale is now "transparent". Paint.Font.Size is not changed anymore when assigning the Paint.Font property.

[GB.GTK3]
* NEW: Paint.FontScale is now "transparent". Paint.Font.Size is not changed anymore when assigning the Paint.Font property.

[GB.QT4]
* NEW: Paint.FontScale is now "transparent". Paint.Font.Size is not changed anymore when assigning the Paint.Font property.

[GB.QT5]
* NEW: Paint.FontScale is now "transparent". Paint.Font.Size is not changed anymore when assigning the Paint.Font property.
* BUG: Utility windows now kept being in front of their parent window correctly.
2019-10-26 01:06:18 +02:00
gambas
47dddd944a Do not imbricate focus events.
[GB.GTK]
* BUG: Do not imbricate focus events.

[GB.GTK3]
* BUG: Do not imbricate focus events.

[GB.QT4]
* BUG: Do not imbricate focus events.

[GB.QT5]
* BUG: Do not imbricate focus events.
2019-10-12 23:55:38 +02:00
gambas
9409b6be64 Windows whose Utility property is set now use '_NET_WM_WINDOW_TYPE_DIALOG' instead of '_NET_WM_WINDOW_TYPE_DIALOG'.
[GB.GTK]
* NEW: Windows whose Utility property is set now use '_NET_WM_WINDOW_TYPE_DIALOG' instead of '_NET_WM_WINDOW_TYPE_DIALOG'.

[GB.GTK3]
* NEW: Windows whose Utility property is set now use '_NET_WM_WINDOW_TYPE_DIALOG' instead of '_NET_WM_WINDOW_TYPE_DIALOG'.
2019-10-09 17:17:30 +02:00
gambas
8a188342ec Don't leak control reference when raising an error from a click event handler.
[GB.GTK]
* BUG: Don't leak control reference when raising an error from a click event handler.

[GB.GTK3]
* BUG: Don't leak control reference when raising an error from a click event handler.

[GB.QT]
* BUG: Don't leak control reference when raising an error from a click event handler.

[GB.QT4]
* BUG: Don't leak control reference when raising an error from a click event handler.
2019-09-17 10:12:48 +02:00
gambas
7a49f039b5 Uncatched errors raised from an event handler can be ignored now.
[INTERPRETER]
* NEW: Uncatched errors raised from an event handler can be ignored now.

[GB.GTK]
* NEW: Uncatched errors raised from an event handler can be ignored now.

[GB.GTK3]
* NEW: Uncatched errors raised from an event handler can be ignored now.

[GB.QT4]
* NEW: Uncatched errors raised from an event handler can be ignored now.

[GB.QT5]
* NEW: Uncatched errors raised from an event handler can be ignored now.
2019-09-17 10:10:36 +02:00
gambas
24c3bdcf51 Fix menu proxy management that could crash combo-box popups.
[GB.GTK]
* BUG: Fix menu proxy management that could crash combo-box popups.

[GB.GTK3]
* BUG: Fix menu proxy management that could crash combo-box popups.
2019-09-03 00:06:30 +02:00
gambas
c044148d52 Fix some memory leaks in font management.
[GB.GTK]
* BUG: Fix a memory leak when getting the size of a piece of text.

[GB.GTK3]
* BUG: Fix a memory leak in font object creation.
* BUG: Fix a memory leak when getting the size of a piece of text.
2019-09-01 00:03:36 +02:00
gambas
ad7b2a4937 Automatically set Paint.FontScale when painting on a printer, so that font size is actually the same as on the screen.
[GB.GTK]
* NEW: Automatically set Paint.FontScale when painting on a printer, so that font size is actually the same as on the screen.

[GB.GTK3]
* NEW: Automatically set Paint.FontScale when painting on a printer, so that font size is actually the same as on the screen.

[GB.QT4]
* NEW: Automatically set Paint.FontScale when painting on a printer, so that font size is actually the same as on the screen.
* BUG: Fix rich text size margins between paragraphs and titles.
* BUG: Fix rich text size computation.

[GB.QT5]
* NEW: Automatically set Paint.FontScale when painting on a printer, so that font size is actually the same as on the screen.
* BUG: Fix rich text size margins between paragraphs and titles.
* BUG: Fix rich text size computation.
2019-07-10 04:19:02 +02:00
gambas
798b1d54cc Add Paint.FontScale, and make gb.gtk and gb.gtk3 printer drawing behave the same as QT components.
[GB.DRAW]
* NEW: Paint: FontScale is a new property that defines a scale applied to the size of the fonts assigned to the Paint.Font property.
* NEW: Paint: Scale() second argument is now optional, and takes the same value as the first argument if omitted.

[GB.GTK]
* NEW: Paint: Implementation of Paint.FontScale.
* BUG: Printer: All printer events are raised between a single Paint.Begin() / Paint.End().

[GB.GTK3]
* NEW: Paint: Implementation of Paint.FontScale.
* BUG: Printer: All printer events are raised between a single Paint.Begin() / Paint.End().
* BUG: Printer: Print() does now crash anymore.
* BUG: Printer: Font sizes now are the same as with QT components.

[GB.QT4]
* NEW: Paint: Implementation of Paint.FontScale.

[GB.QT5]
* NEW: Paint: Implementation of Paint.FontScale.
2019-07-09 19:35:01 +02:00
gambas
e2581fb116 Control: Fix the Tooltip property.
[GB.GTK]
* BUG: Control: Fix the symbol lookup error of the Tooltip property.
* BUG: Control: Fix the Tooltip property name.

[GB.GTK3]
* BUG: Control: Fix the symbol lookup error of the Tooltip property.
* BUG: Control: Fix the Tooltip property name.
2019-06-05 10:33:39 +02:00
gambas
dd121d669f Replace the message box native implementation by a Gambas implementation.
[GB.FORM.STOCK]
* NEW: Add a 128 pixel version of the 'delete' stock icon.

[GB.GTK]
* NEW: Message: Remove the message box native implementation.

[GB.GTK3]
* NEW: Message: Remove the message box native implementation.

[GB.GUI.BASE]
* NEW: Message: Implement the message boxes entirely in Gambas.

[GB.QT4]
* NEW: Message: Remove the message box native implementation.

[GB.QT5]
* NEW: Message: Remove the message box native implementation.
2019-06-05 03:08:22 +02:00
gambas
f1ac2f553b Implement Drag.Show() in Gambas, and consequently fix it in 'gb.gtk3'.
[GB.GTK]
* NEW: Drag.Show() and Drag.Hide() methods are now implemented in 'gb.gui.base'.
* NEW: Drag.X and Drag.Y properties are now writable.

[GB.GTK3]
* NEW: Drag.Show() and Drag.Hide() methods are now implemented in 'gb.gui.base'.
* NEW: Drag.X and Drag.Y properties are now writable.
* BUG: Finishing a drag & drop now correclty releases the button grab.

[GB.GUI.BASE]
* NEW: GridView: The padding of column headers is at least half of Desktop.Scale.
* NEW: ScrollArea: The Scroll() method returns TRUE now if no scrolling actually occured.
* BUG: TreeView: Item X property now correctly takes the TreeView padding into account.
* NEW: Drag.Show() and Drag.Hide() methods are now implemented in 'gb.gui.base'.

[GB.QT4]
* NEW: Drag.Show() and Drag.Hide() methods are now implemented in 'gb.gui.base'.
* NEW: Drag.X and Drag.Y properties are now writable.

[GB.QT5]
* NEW: Drag.Show() and Drag.Hide() methods are now implemented in 'gb.gui.base'.
* NEW: Drag.X and Drag.Y properties are now writable.
2019-06-01 04:52:25 +02:00
glixx
073208ca3a Patch CVE-2013-7447 2019-05-29 02:15:09 +03:00
gambas
0ab84aa34a Disable top-level menus shortcuts when the window menu bar is hidden.
[GB.FORM]
* BUG: MenuButton: Use selected background color when the MenuOnly property is set and the MenuButton has the focus.

[GB.GTK]
* NEW: Disable top-level menus shortcuts when the window menu bar is hidden.

[GB.GTK3]
* NEW: Disable top-level menus shortcuts when the window menu bar is hidden.

[GB.GUI.BASE]
* NEW: Add helper function for disabling/enabling top-level menu shortcuts.

[GB.QT4]
* NEW: Disable top-level menus shortcuts when the window menu bar is hidden.

[GB.QT5]
* NEW: Disable top-level menus shortcuts when the window menu bar is hidden.
2019-05-25 22:25:13 +02:00
gambas
baa18e8522 Tooltips now support rich text, like in the QT components.
[GB.GTK]
* BUG: Tooltips now support rich text, like in the QT components.

[GB.GTK3]
* BUG: Tooltips now support rich text, like in the QT components.
2019-05-24 01:58:28 +02:00
gambas
0bfe40ac76 Message boxes now correctly use the translated title.
[GB.GTK]
* BUG: Message boxes now correctly use the translated title.

[GB.GTK3]
* BUG: Message boxes now correctly use the translated title.
* BUG: Rudimentary support for GDK backends that are not X11.
2019-05-23 19:15:03 +02:00
gambas
a0bcf85bd4 Active file descriptor watches and active timers are now automatically transferred to the component declaring a custom event loop.
[INTERPRETER]
* BUG: Active file descriptor watches and active timers are now automatically transferred to the component declaring a custom event loop. Consequently, a process started before the declaration of the event loop will have its termination signal correctly catched.
* NEW: Use waitpid() instead of wait4().

[GB.GTK]
* BUG: Declare the event loop hook last so that active file descriptor watches and active transfer are automatically transferred.

[GB.GTK3]
* BUG: Declare the event loop hook last so that active file descriptor watches and active transfer are automatically transferred.

[GB.QT4]
* BUG: Declare the event loop hook last so that active file descriptor watches and active transfer are automatically transferred.

[GB.QT5]
* BUG: Declare the event loop hook last so that active file descriptor watches and active transfer are automatically transferred.
2019-03-12 03:46:30 +01:00
gambas
aa66e9bcd5 Windows without any active child control correctly catch keyboard events now.
[GB.GTK]
* BUG: Windows without any active child control correctly catch keyboard events now.

[GB.GTK3]
* BUG: Windows without any active child control correctly catch keyboard events now.
2019-02-23 00:15:35 +01:00
gambas
6bd779d2f6 Make component compile with GTK+ < 3.20.
[GB.GTK3]
* BUG: Make component compile with GTK+ < 3.20.
2019-01-26 16:11:19 +01:00
gambas
7b75f31e81 TabStrip: Tab labels are now correctly displayed when the tab has no icon.
[GB.GTK3]
* BUG: TabStrip: Tab labels are now correctly displayed when the tab has no icon.
2019-01-26 15:25:51 +01:00
gambas
9a77f14b5c Do not propagate mouse wheel events of ComboBox, TextArea, Slider and ScrollBar, as in Qt components.
[GB.GTK]
* BUG: Do not propagate mouse wheel events of ComboBox, TextArea, Slider and ScrollBar, as in Qt components.

[GB.GTK3]
* BUG: Do not propagate mouse wheel events of ComboBox, TextArea, Slider and ScrollBar, as in Qt components.
2019-01-07 22:44:03 +01:00
gambas
245427b08e * Get rid of many gcc warnings. 2019-01-02 00:48:58 +01:00
gambas
b3c305d8bf Control.Parent does not crash anymore.
[GB.GTK]
* BUG: Control.Parent does not crash anymore.

[GB.GTK3]
* BUG: Control.Parent does not crash anymore.
2018-11-29 23:55:09 +01:00
gambas
44fa1bb634 Do not add spurious spaces in rich text anymore.
[GB.GTK]
* BUG: Do not add spurious spaces in rich text anymore.

[GB.GTK3]
* BUG: Do not add spurious spaces in rich text anymore.
2018-11-26 12:09:34 +01:00
gambas
44a3f5f664 Control.Parent now ignores the inner containers of Container controls made in Gambas.
[GB.GTK]
* NEW: Control.Parent now ignores the inner containers of Container controls made in Gambas.
* NEW: Control._Parent is the old Parent property renamed.

[GB.GTK3]
* NEW: Control.Parent now ignores the inner containers of Container controls made in Gambas.
* NEW: Control._Parent is the old Parent property renamed.

[GB.QT4]
* NEW: Control.Parent now ignores the inner containers of Container controls made in Gambas.
* NEW: Control._Parent is the old Parent property renamed.

[GB.QT5]
* NEW: Control.Parent now ignores the inner containers of Container controls made in Gambas.
* NEW: Control._Parent is the old Parent property renamed.
2018-11-19 23:21:37 +01:00
bgermann
dace3b09ac Remove boolean definitions except in gb_common.h 2018-10-15 18:48:01 +02:00
gambas
a94bc793fe Mouse.State has flags for keyboard modifiers now.
[GB.GTK]
* NEW: Mouse.State has flags for keyboard modifiers now.

[GB.GTK3]
* NEW: Mouse.State has flags for keyboard modifiers now.
2018-10-08 16:35:45 +02:00
gambas
af3ef8d130 Paint: Text should now be correctly drawn in all cases.
[GB.GTK]
* BUG: Paint: Text should now be correctly drawn in all cases.

[GB.GTK3]
* BUG: Paint: Text should now be correctly drawn in all cases.
2018-10-04 12:17:53 +02:00
gambas
1bf70e1e75 PictureBox is now implemented in Gambas.
[GB.GTK]
* NEW: Remove PictureBox control.

[GB.GTK3]
* NEW: Remove PictureBox control.

[GB.GUI.BASE]
* NEW: PictureBox is now implemented in Gambas.
* NEW: PictureBox: Image is a new property that allows to display an Image instead of a Picture.
* NEW: PictureBox: Mode is a new property that defines how the image fills the control.

[GB.QT4]
* NEW: Remove PictureBox control.

[GB.QT5]
* NEW: Remove PictureBox control.
2018-10-03 16:06:54 +02:00
gambas
6619f59263 Unify and fix the behaviour of the Container.Children property.
[GB.GTK]
* NEW: Container.Children now returns a real object that is a read-only array of references to all container children.
* NEW: Container.Children.Max is a new property that returns the number of container children minus one.

[GB.GTK3]
* NEW: Container.Children now returns a real object that is a read-only array of references to all container children.
* NEW: Container.Children.Max is a new property that returns the number of container children minus one.

[GB.QT4]
* NEW: Container.Children now returns a real object that is a read-only array of references to all container children.
* NEW: Container.Children.Max is a new property that returns the number of container children minus one.

[GB.QT5]
* NEW: Container.Children now returns a real object that is a read-only array of references to all container children.
* NEW: Container.Children.Max is a new property that returns the number of container children minus one.
2018-09-24 15:39:37 +02:00
gambas
1fa7304654 Fix Container.Children.Clear() method.
[GB.GTK]
* BUG: Fix Container.Children.Clear() method.

[GB.GTK3]
* BUG: Fix Container.Children.Clear() method.
* BUG: Remove a warning on deprecated API.
2018-09-24 11:33:30 +02:00
gambas
f5e0d6ebbb Controls having a null size are now taken into by the arrangement routine, and are moved accordingly.
[GB.GTK]
* NEW: Controls having a null size are now taken into by the arrangement routine, and are moved accordingly.
* BUG: Set a cursor by trying all possible API, to be sure to find one existing.

[GB.GT3]
* NEW: Controls having a null size are now taken into by the arrangement routine, and are moved accordingly.
* BUG: Set a cursor by trying all possible API, to be sure to find one existing.

[GB.QT4]
* NEW: Controls having a null size are now taken into by the arrangement routine, and are moved accordingly.

[GB.QT5]
* NEW: Controls having a null size are now taken into by the arrangement routine, and are moved accordingly.
2018-09-15 22:29:21 +02:00
gambas
1cf0e4bfeb Do not crash anymore when deleting a modal window during its Open event.
[GB.GTK]
* BUG: Do not crash anymore when deleting a modal window during its Open event.
* BUG: Don't send fake configure event anymore when resizing a control. To check if it is actually needed for something.

[GB.GTK3]
* BUG: Do not crash anymore when deleting a modal window during its Open event.
* BUG: Don't send fake configure event anymore when resizing a control. To check if it is actually needed for something.
2018-09-14 00:47:32 +02:00
gambas
386ef35e44 Remove ScrollView control, add a Change event to the DrawingArea control, and propagate MouseWheel events automatically.
[GB.GTK]
* NEW: ScrollView: Remove ScrollView control.
* NEW: DrawingArea: Change is a new event that is raised when the Application.Animations or Application.Shadows property changes.
* NEW: MouseWheel events are now automatically propagated to the parent control if they are not handled by the child.
* BUG: ScrollBar: Correctly raise the Change event in all cases.
* BUG: Slider: Correctly raise the Change event in all cases.

[GB.GTK3]
* NEW: ScrollView: Remove ScrollView control.
* NEW: DrawingArea: Change is a new event that is raised when the Application.Animations or Application.Shadows property changes.
* NEW: MouseWheel events are now automatically propagated to the parent control if they are not handled by the child.
* BUG: ScrollBar: Correctly raise the Change event in all cases.
* BUG: Slider: Correctly raise the Change event in all cases.
2018-09-12 13:54:30 +02:00
gambas
ec5efc1785 [GB.GTK]
* BUG: Frame: Fix arrangement.

[GB.GTK3]
* BUG: Frame: Fix control layout and arrangement.
* BUG: Get rid of most of the GtkAlignment deprecated widgets.
2018-09-07 19:50:45 +02:00
gambas
e78d690ac3 Let's try to compile 'gb.gtk3' on Ubuntu 12.04!
[GB.GTK3]
* BUG: Let's try to compile 'gb.gtk3' on Ubuntu 12.04!
2018-09-06 22:55:19 +02:00
gambas
d61741474f ScrollArea and all its children classes now can animate their scrolling.
[DEVELOPMENT ENVIRONMENT]
* NEW: Update Gambas fonts.
* NEW: Option dialog: Add an option to enable control animations. Move the toolbar size option to the 'Fonts' panel.

[GB.GTK]
* NEW: Application.Animations is a new property that enable or disable control animations.

[GB.GTK3]
* NEW: Application.Animations is a new property that enable or disable control animations.
* NEW: Control.Font is now implemented using GTK+ CSS.

[GB.GUI.BASE]
* NEW: ScrollArea: Animate scrolling if Application.Animations is set.

[GB.QT4]
* NEW: Application.Animations is a new property that enable or disable control animations.

[GB.QT5]
* NEW: Application.Animations is a new property that enable or disable control animations.
2018-09-05 21:19:57 +02:00
gambas
41058b3ff5 Really make gb.gtk3 compile with GTK+ < 3.14.
[GB.GTK3]
* BUG: Really make gb.gtk3 compile with GTK+ < 3.14.
2018-09-05 00:23:53 +02:00
gambas
83a1ee29bc Make gb.gtk3 compile with GTK+ < 3.14.
[GB.GTK3]
* BUG: Make gb.gtk3 compile with GTK+ < 3.14.
2018-09-04 22:23:54 +02:00
gambas
e5b3fa25e0 Compile with gtk+ < 3.20.
[GB.GTK3]
* BUG: Compile with gtk+ < 3.20.
2018-09-04 21:56:08 +02:00