[GB.FORM.EDITOR]
* NEW: TextEditor: Theme is a new property that allows to define the TextHighlighterTheme associated with the editor.
* NEW: TextEditor: The Styles property is now deprecated. It returns now the array of TextHighlighterStyle associated with editor theme.
* NEW: TextEditor: The editor lines have now a little padding on the top and on the bottom, whose size is proportional to the font height.
* BUG: TextEditor: The line wrap markers now are correctly colorized when selected.
* NEW: TextEditor: Colorized text can be striked out.
[GB.EVAL.HIGHLIGHT]
* NEW: Highlight: Styles is a new property that returns the string key available for all TextHighlighterStyle objects. The integer id of a style is its position in that array.
* NEW: Highlight: GetStyleName() is a new method that returns the translated name of a specific style.
* NEW: TextHighlighter: List is a new static property that returns a list of all implemented highlighter names.
* NEW: TextHighlighter: Name is a new property that returns the name of an highlighter.
* NEW: TextHighlighter: FullName is a new property that returns the human name of an highlighter.
* NEW: TextHighlighter: Styles is a new property that returns the styles actually used by an highlighter.
* NEW: TextHighlighter: ToAnsi(), ToHTML(), ToRichText() and Paint() method now take a TextHighlighterTheme or an array of TextHighlighterStyle as last argument.
* NEW: TextHighlighterStyle: Add Key, Name, Color, Bold, Underline, Dotted, Strikeout properties.
* NEW: TextHighlighterStyle: The Background property tells if the style is a background style according to its key.
* NEW: TextHighlighterStyle: The InvertedColor property returns the style color inverted for dark themes.
* NEW: TextHighlighterStyle: The ToString() method serializes the style to a string.
* NEW: TextHighlighterStyle: The FromString() method creates a style from a string returned by ToString().
* NEW: TextHighlighterTheme: A new class that represents a highlighting theme
* NEW: All highlighter classes were ported to the new design.
[GB.MAP]
* BUG: The MapBound.Contain function really return if a bound can be contained.
* NEW: Add a new function to the shape layer that return an array of _ShapeItems contained in a mapbound.
[GB.FORM.STOCK]
* BUG: Set "FollowsColorScheme" flag back into Gambas icon theme generation description file.
* NEW: Add 'pointer' and 'theme' icons. Redraw some icons. 360 different icons is a nice count.
[GB.FORM.TERMINAL]
* NEW: TerminalView: CursorStyle is a new property that allows to define how the cursor is drawn.
* NEW: TerminalView: CursorBlock, CursorUnderline and CursorText are three new constants that represents how the cursor is drawn.
[GB.GUI.BASE]
* NEW: ScrollArea: The EnsureVisible() method now takes an extra optional argument, that tells which scroll direction is allowed.
* NEW: GridView: GridView.Rows[].EnsureVisible() is a new method that ensures that a specific row is visible by scrolling vertically only.
* NEW: GridView: GridView.Columns[].EnsureVisible() is a new method that ensures that a specific column is visible by scrolling horizontally only.
* NEW: TreeView: Automatic scrolling on item change is now vertical only.
[GB.FORM]
* NEW: Format file sizes with no more than three digits.
* BUG: Stock: Don't duplicate 'Gambas' and 'Gambas-Mono' icon themes in Stock.Themes property.
* OPT: FileView: Use the directory cache instead of Stat() when drawing the items.
[GB.FORM.STOCK]
* NEW: Add an hidden API to install the stock icons as system icon theme in '~/.local/share/icons'.
* NEW: Add icon for special home folders.
* NEW: Redraw the 'watch' icon.
[GB.DBUS.TRAYICON]
* BUG: TrayIcon: Do not raise the 'LayoutUpdated' DBus signal anymore. Instead, just return TRUE in the 'AboutToShow' event handler.
That should fix the menu refresh problems inside the system tray.
[GB.FORM.DIALOG]
* NEW: Dialog.FilterIndex is a new property that returns or defines the current filter of the file dialog.
[GB.GTK]
* NEW: Dialog.FilterIndex is a new property that returns or defines the current filter of the file dialog.
[GB.GTK3]
* NEW: Dialog.FilterIndex is a new property that returns or defines the current filter of the file dialog.
[GB.QT4]
* NEW: Dialog.FilterIndex is a new property that returns or defines the current filter of the file dialog.
[GB.QT5]
* NEW: Dialog.FilterIndex is a new property that returns or defines the current filter of the file dialog.
[GB.FORM]
* NEW: Add 'bluetooth' and 'json' stock icons.
* NEW: MessageView: Remove text from buttons. Use less vertical space.
* BUG: MenuButton: Try to not take the focus on click, like a ToolButton.
[GB.EVAL.HIGHLIGHT]
* BUG: TextHighlighter: Fix Paint() method signature.
* OPT: TextHighlighter: Add the FAST keyword to the Add() method.
* BUG: '<<' operator was defined twice in 'Sh' highlighting.
[GB.DESKTOP]
* NEW: Desktop.RunAsRoot() now takes an optional argument to wait for the program ends, and now uses 'pkexec' by default.
* NEW: Desktop.RunAs() is a method similar as RunAsRoot() that takes the username used for running the program.
[GB.WEB.GUI]
* NEW: Preload framework images and icons.
* NEW: WebButton: Implement the 'Default' and 'Cancel' buttons. They work only in the main form and in modal dialogs.
* NEW: WebTree: Clicking twice toggles the item expanded state.
[GB.WEB.GUI]
* NEW: WebTable: Replace the 'ShowHeader' and 'ShowRowNumber' properties by a 'Header' property.
* NEW: WebTable: Draw the vertical header the same way as the horizontal header, and make it sticky.
* NEW: WebTable: Replace the 'DblClick' event by the 'Activate' event.
* NEW: WebTree: Implement the 'Activate' event.
* BUG: WebTree: The "select all" checkbox now works as expected.
*
[GB.WEB.GUI]
* NEW: WebTree: Initial implementation of a tree control. Not finished yet!
* BUG: WebTable: Fix table layout.
* BUG: Ensure that the pipe for writing the response is in blocking mode.
[GB.DESKTOP]
* NEW: add pkexec as primary gui sudoer to RunAsRoot
* NEW: RunAsRoot has "Wait" argument (default is False)
* NEW: RunAsRoot has Username argument (default is root)
* OPT: Split Command if pkexec is used
[GB.WEB.GUI]
* NEW: WebImage: The Image property can be an absolute URL now.
* NEW: WebAudio: The Audio property can be an absolute URL now.
* NEW: WebAudio: Add a Loop property to make the sound automatically loop.
[GB.DESKTOP]
* BUG: Using Exec With [envs] was not working, used pkexec env method to pass DISPLAY and XAUTHORITY envs instead as it works.
* OPT: Also Split "Command" string for Exec or it fails if command has more than one arg.
Notes.
I found the prior method worked on pluma but not on any gambas applications. (they all reported unable to open display)
Using this "pkexec env" method fixes that and makes it work on gambas applications and supports multiple arguments.
[GB.DESKTOP]
* OPT: move test for pkexec to outside of kde/gnome check as it is independant so will be checked regardless if no other graphical sudo is found.
[GB.GUI.BASE]
* BUG: Fix KDE desktop detection, and do not crash if no desktop is detected.
* NEW: GridView: The 'Change' event now can be stopped to cancel a cursor move.
[GB.ARGS]
* NEW: Args.Abort is a new property that tells if the program aborts or raises an error when an Args method fails. The property is TRUE by default.
[GB.WEB.GUI]
* BUG: Keyboard events work again.
* NEW: WebForm.Shortcuts is a new property that allows to declare a list of shortcuts the browser won't see.
[GB.WEB.GUI]
* NEW: Key.Code returns the name of the pressed key, while Key.Text now returns the text associated with the key if there is.
* NEW: Key.Shortcut returns the shortcut string associated with a keyboard event.
* BUG: Fix Key.Control property.
* NEW: Handle WebMenu.Shortcut property.
* BUG: Use 'keydown' DOM event instead of 'keypress', as 'keypress' is deprecated.
* NEW: Setting WebTextArea.Text now automatically moves the cursor and the scrollbar to the end of the text.