[GB.WEB.FORM]
* BUG: WebForm: Forms embedded into other forms work correctly now.
* BUG: WebForm: An error is raised now when trying to show an embedded form.
* BUG: WebForm: Fix message box icons pre-loading.
[GB.WEB]
* NEW: Request.ContentType is a new property that returns the Content-Type HTTP header.
* NEW: Request.ContentLength is a new property that returns the Content-Length HTTP header, or -1 if the header is not present.
* BUG: Request.Language now uses an internal dictionary to convert the Accept-Language HTTP header to a correct system language.
* BUG: Request.Language now takes the priority of languages specified in the Accept-Language HTTP header into account.
* BUG: If the request exceeds the maximum size defined by Request.MaxFileSize, a "Request too big" error is raised instead of "Response too big".
* NEW: Desktop.Types is a new property that returns a read-only array of each desktop defined in Desktop.Type.
* NEW: Desktop.Passwords: Work correctly now when multiple desktops are included in the Desktop.Type property.
* OPT: DesktopFiles: Remove some useless array copies.
[GB.FORM]
* NEW: FileView: Add information about each file next to the icon in icon view mode.
* BUG: DocumentView: Remove erroneous public constant written in French.
[GB.FORM.EDITOR]
* NEW: TextEditor: Draw wrapped lines with a normal background, but with a gray hook to its right.
* BUG: TextEditor: Now we can set up to 32 style colors without crashing.
[GB.FORM]
* NEW: Spinner: Use the foreground color to draw the spinner and its label.
* NEW: TabPanel: Use the TabPanel foreground color to draw the titles of the tabs.
[GB.GUI.BASE]
* BUG: GridView: Border padding is now applied inside the cell, not outside like the margin.
* NEW: TreeView: A Scroll event is raised now then the TreeView, the ListView or the ColumnView scrolls.
* BUG: TreeView: Setting the item Font property to NULL does not crash anymore.
[GB.FORM]
* BUG: DocumentView: Correctly reset the scroll position when setting Arrangement to Arrange.Fill.
* OPT: DocumentView: Desaturate is faster now as it is done only once per page drawing.
[GB.FORM]
* NEW: DocumentView: The default background color is now a mix of the default text foreground and background colors.
* BUG: DocumentView: Use Paint.Begin() instead of Draw.Begin(), so that preview uses anti-aliasing.
* BUG: DocumentView: Fix some cases of page drawing not correctly triggered.
* NEW: DocumentView: ShowPage is new property that displays the current page and the number of pages inside the preview.
* NEW: DocumentView: Desaturate is a new property that desaturates the preview. It's slow when the zoom is huge.
* NEW: DocumentView: Allow zoom up to 800%.
[DEVELOPMENT ENVIRONMENT]
* NEW: The IDE translation is now fix and complete.
[GB.FORM.TERMINAL]
* NEW: The complete translation.
[GB.TERM.FORM]
* NEW: The translation is now complete.
[GB.UTIL]
* New: The translation is now fix
[GB.GUI.BASE]
* NEW: Paint.Arrow() is a new method that draws an arrow.
* NEW: TreeView & ColumnView: ShowLines is a new property that makes the control draw tree lines.
* NEW: TreeView & ColumnView: The arrow size now follows the font size.
[GB.EVAL]
* NEW: Highlight.Alternate is a new constant that represents the background style used for coloring code embedded into webpages.
[GB.EVAL.HIGHLIGHT]
* NEW: Support for new Highlight.Alternate style.
[GB.FORM.EDITOR]
* NEW: Support for new Highlight.Alternate style.
* NEW: Matching braces now blink with the cursor.
* BUG: When the cursor moves, the blinking timer is reset so that the cursor blinks only when it is not moving.
[GB.FORM.EDITOR]
* NEW: TextEditor: Don't enclose selection with quotes anymore, it is more annoying than anything else.
* NEW: TextEditor: Undo now groups successive single character insertions, and successive single character deletions as well.
[GB.FORM.EDITOR]
* BUG: Translate popup menu.
[GB.NET.CURL]
* BUG: DownloadManager: Remove useless Message event.
* NEW: DownloadManager: Add a Connect event raised when the distant server is connected.
[GB.WEB]
* BUG: CGI error message is not translatable.
[GB.XML]
* BUG: Error messages must not be translatable.
[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.
[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.
[DEVELOPMENT ENVIRONMENT]
* BUG: About dialog: Wrap license text so that it is not truncated.
[GB.GUI.BASE]
* BUG: Paint.DrawRichTextShadow() default radius is now the same as Paint.DrawTextShadow().
[GB.WEB]
* BUG: Request: Posted field request using 'multipart/form-data' and having initial void lines were incorrectly trimmed. Posted files were not affected.
[GB.FORM]
* NEW: MenuButton: Handle right-to-left written language correctly.
* NEW: Expander: Redesign the Expander title.
* NEW: SliderBox: Hitting the ESC key in the SpinBox resets the SliderBox to its default value.
[CONFIGURATION]
* NEW: Update version to 3.13.90.
[DEVELOPMENT ENVIRONMENT]
* NEW: Redone extra references support.
[COMPILER]
* NEW: Take project extra references into account.
[GB.TERM.FORM]
* BUG: Fix project description.
[DEVELOPMENT ENVIRONMENT]
* NEW: The IDE translation is now complete.
[GB.FORM]
* NEW: Italian translations improvements
[GB.WEB.FEED]
* NEW: The translations is now complete.
[GB.FORM]
* NEW: ListEditor: ReadOnly is a new property that makes ListEditor enter read-only mode.
* NEW: ListEditor: Add is new event that is raised when the add button is clicked.
* NEW: ListEditor: Add() is a new method that insert a new element in the list.
* NEW: ListEditor: Exist() is a new method that returns if an item exists in the list.
* NEW: Update some translations.
[GB.MEDIA.FORM]
* NEW: MediaView: Speed is a new property that allows to define the media playing speed. A negative speed moves backward.
* NEW: MediaView: Resizing the control while the media is paused correctly resizes the displayed frame.
[GB.GUI.BASE]
* NEW: SpinBox: Alignment is a new property that allows to define the alignment of the control inner text.
* NEW: SpinBox: ShowZero is a new property that tells to pad the displayed number with zeros.
* NEW: SpinBox: Limit is a new event that is raised when the user tries to move past the maximum value, or beofre the minimum value.
* BUG: SpinBox: The value entered with the keyboard is now always taken into account by the next use of the mouse.
[DEVELOPMENT ENVIRONMENT]
* BUG: Search dialog: text highlight now works correctly whatever the editor font is.
[GB.EVAL.HIGHLIGHT]
* NEW: TextHighlighter: Paint() is a new method that paints the highlighted text.
[GB.GUI.BASE]
* NEW: Paint: Add an hidden undocumented method that computes the character width of a fixed font.
[GB.UTIL]
* NEW: Add Date.FromUTC() as inverse to Date.ToUTC().
* BUG: Fix timezone bug in Date.FromRFC822() and pass all tests.
See the thread "gb.web.feed not stable yet?" [1] for explanations
of the bug and fix.
[1] https://lists.gambas-basic.org/pipermail/user/2018-December/066103.html
[GB.UTIL.WEB]
* NEW: URL is a now a dynamic class that can be used for analyzing and modifying the contents of an URL.
* NEW: URLQuery is a new class that represents the query part of an URL.
[GB.WEB.FORM]
* NEW: WebButton: Add the Immediate property. If set, the Javascript code emitted by the Click event handler is executed immediately by the 'onclick' button event. Use this feature when some DOM method (like clipboard copy) works only in the context of a user interaction.
* BUG: WebTextBox: Optimize Change event.
* BUG: WebTextArea: Optimize Change event.
* NEW: WebTextBox: The Change event is now emitted a few milliseconds after each text change.
* NEW: WebTextArea: The Change event is now emitted a few milliseconds after each text change.
[GB.WEB.FORM]
* BUG: Fix margins of WebContainer using Row or Column arrangement.
* NEW: The '~dump' request now displays the environment variables too.
* NEW: WebTextBox.Copy() is a new method that copies the control text to the clipboard. Works only with https.
* NEW: WebTextArea.Clear() is a new method that clears the control text.
* NEW: WebTextArea.Copy() is a new method that copies the control text to the clipboard. Works only with https.
[GB.FORM.EDITOR]
* NEW: TextEditor.LastLine is a new property that returns the line position just before a cursor move.
* NEW: TextEditor.LastColumn is a new property that returns the column position just before a cursor move.
[GB.UTIL]
* NEW: Shell.MkDir() now handles paths starting with "~/", and raises an error if creating the directory is impossible.
* NEW: Shell.Move() got a new optional 'Force' argument, that erases the destination path The erase and the move are atomic if possible.
[GB.MAP]
* BUG: return null if the required layer not exist
* BUG: Remove function of Shape Layer do nothing if the Layer did not exist
* BUG: All the object can be removed in all order now.
[GB.FORM]
* OPT: FileView: Optimize view refresh.
* BUG: SidePanel: Side buttons were sometimes created twice.
* BUG: SidePanel: Side buttons tooltips are now always correct.
[GB.GUI.BASE]
* BUG: IconView: Items highglight is correctly drawn now.
* OPT: TreeView: Allows the view to be locked while a lot of items are added.
* NEW: TreeView: BeforeSort is a new event that allows a caller to prepare its custom view sort.
[GB.FORM]
* BUG: ColorPalette: Handle mouse wheel events correctly.
* BUG: ColorPalette: Ensure that the current color is visible.
* NEW: ColorChooser: The value slider now handles mouse wheel events.
* OPT: FileView: Sort the files once when the view is reloaded.
* NEW: TableView: Move the editor so that the cell border is correctly visible.
[GB.GUI.BASE]
* NEW: GridView: Draw last column and last rows separators even if Grid is not set when the GridView is actually a TableView.
* BUG: ScrollView: Fix arrangement.
* OPT: TreeView: Define the default row size, so that adding items is faster.
[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.
[GB.FORM.MDI]
* NEW: Action.Add() is a new method that allows to declare a new action.
* NEW: Action.AddFrom() is a new method that declare a new action from a control.
[GB.GUI.BASE]
* NEW: Action.Keys is new static property that returns the list of all action keys.
* NEW: Action[].HasShortcut is a new property that returs if an action can have a shortcut.
[GB.FORM.EDITOR]
* OPT: TextEditor: Setting styles multiple times now triggers only one highlight update.
* NEW: TextEditor: Matching braces are now just underlined. I find that more readable.
[GB.GUI.BASE]
* NEW: TreeView, ListView, ColumnView: Keys is a new property that returns an array of all item keys.
* BUG: TreeView, ListView, ColumnView: Setting an item font has no side effect anymore.
[GB.FORM.EDITOR]
* BUG: TextEditor: Setting the editor text does not crash anymore if the cursor of one of its view is out of bounds. Finally fixed it!
[GB.FORM]
* BUG: SidePanel: It should work correctly in all cases now.
* NEW: SidePanel: Animate opening and closing when Application.Animations is set.
[GB.FORM.EDITOR]
* BUG: TextEditor: GotoCenter() works correctly again.
* BUG: TextEditor: HighlightString() correctly refreshes the editor contents in all cases.
[GB.GUI.BASE]
* NEW: ScrollArea: ContentsWidth and ContentsW are two new synonymous of the ScrollWidth property.
* NEW: ScrollArea: ContentsHeight and ContentsH are two new synonymous of the ScrollHeight property.
* NEW: ScrollArea: Shadow is a new property that displays inner shadows when scrolling is possible.
* NEW: ScrollArea: Rework scrolling animation.
* NEW: ScrollView: That control is now implemented in Gambas.
[GB.GUI.BASE]
* NEW: ScrollArea: Scrolling is a new property that returns if the control is scrolling for animations.
* NEW: ScrollArea: Don't animate scrolling if nothing has been drawn yet.
* BUG: ScrollArea: Fix the ScrollX and ScrollY properties when animations are enabled.
[GB.FORM]
* NEW: SwitchButton: Take Application.Animations property into account.
* NEW: MessageView: Take Application.Animations property into account.
[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.
[GB.GTK]
* NEW: Remove the native SpinBox implementation.
* BUG: Add specific fixes for breeze and oxygen themes.
[GB.GTK3]
* NEW: Remove the native SpinBox implementation.
* BUG: ComboBox: Fix rendering.
* BUG: ComboBox: Use a GtkBox instead of the deprecated GtkAlignment.
* BUG: Style: Fix some paint methods and metric properties.
* BUG: Add specific fixes for breeze and oxygen themes.
[GB.GUI.BASE]
* NEW: SpinBox: New implementation of the control in Gambas.
* BUG: ProgressBar: Fix rendering with GTK+ components.
[GB.QT4]
* NEW: Remove the native SpinBox implementation.
* NEW: RadioButton: Fill the widget when the background color is set.
* BUG: Style: Fix some metric properties.
[GB.QT5]
* NEW: Remove the native SpinBox implementation.
* NEW: RadioButton: Fill the widget when the background color is set.
* BUG: Style: Fix some metric properties.
[GB.FORM]
* NEW: FileChooser: After having uncompressed a file, calls the event loop before refreshing the views so that the possible inotify events are processed.
[COMPILER]
* NEW: Rename a macro constant to avoid a symbol clash when compiling the interpreter.
[INTERPRETER]
* NEW: Get rid of a macro trick in 'gbx_eval.h' header.
[GB.EVAL]
* NEW: Highlight: Add three new color constants for syntax highlighting: Escape, Label and Constant.
* NEW: Rename some source files.
* NEW: Rename some constants.
* NEW: Gambas syntax highlighter now use the three new contants for escape characters in strings, for labels, and for language contants (True, False, Null, +Inf and -Inf).
[GB.EVAL.HIGHLIGHT]
* NEW: Support for the new syntax highlighting color constants.
[GB.FORM.EDITOR]
* NEW: Support for the new syntax highlighting color constants.
[DEVELOPMENT ENVIRONMENT]
* NEW: Add an option to close the tabs with the middle mouse button instead of using little close buttons.
[GB.FORM]
* NEW: TabPanel: The middle mouse button does not close tabs anymore. It is now a feature only implemented in the Workspace control.
[GB.FORM.MDI]
* NEW: Workspace: CloseWithMouse is a new property. If set, the workspace tabs little close buttons are hidden, and the workspace tabs can be closed with a middle mouse click.
[GB.EVAL.HIGHLIGHT]
* NEW: Take multiline strings into account in javascript syntax highlighting.
[GB.FORM.EDITOR]
* NEW: Take multiline strings into account in javascript mode.
[GB.FORM.EDITOR]
* NEW: TextEditor: Entering a bracket, a brace... while part of the current line is selected now automatically encloses the selected text.
[GB.GUI.BASE]
* NEW: IconView: Improve and normalize how items are draws between horizontal et vertical orientation.
* BUG: IconView: Clicking on an item in multiple selection mode correctly makes it the current item.
* OPT: IconView: Selecting items with the keyboard is faster now.
[GB.FORM]
* NEW: FileView: A directory cache is now automatically invalidated every five second.
* NEW: FileView: ReloadAll() now invalidates the directory cache.
[GB.FORM]
* BUG: DirView: Errors occuring during a renaming now display the balloon message on the renaming item.
* BUG: DirView: Forbid void directory names.
* BUG: FileView: Canceling an item rename now works as expected in icon mode, and correctly refreshes the view.
* BUG: FileView: Forbid void file names.
[GB.GUI.BASE]
* BUG: IconView: Hitting ENTER while renaming an item does not insert a newline in the item text.
* NEW: IconView: Canceling the Rename event keeps the editor opened.
[GB.FORM]
* BUG: FileView: Setting the Current property does nothing if the new value is the same as the old one.
* BUG: FileProperties: Correctly abort the directory size background task if the Path property is set.
* BUG: FileProperties: Don't fill the error tab if the directory size background task is aborted.
[GB.WEB]
* BUG: Fix the write of session values for sqlite sessions.
* NEW: Session.Path is a new property that returns the path of the file where the session is stored.
[INTERPRETER]
* OPT: String searching (Instr, RInstr and Replace) has been made about 4x faster by searching the first occurence with memchr() and memrchr().
[GB.FORM.TERMINAL]
* BUG: Fix warning messages.
[GB.JIT]
* BUG: Fix byte, short and boolean pushing and popping routines.
* BUG: Fix string values referencing.
* BUG: Fix optional argument management.
* NEW: Optimization of bits management subroutines.
[GB.QT4]
* BUG: Delay hooks initialization, because now socket notifiers must not be used before creating the event loop.
[GB.QT5]
* BUG: Delay hooks initialization, because now socket notifiers must not be used before creating the event loop.
[INTERPRETER]
* OPT: String routines are now compiled with -O3.
* NEW: Don't display JIT debugging message unless GB_JIT_DEBUG is set to something different from zero.
* NEW: String whose length is greater than 256 now have a growth step of 256 bytes instead of 16.
[GB.JIT]
* NEW: Do many global optimizations as now the class metadata is fully available.
* NEW: Support for optional argument. Still buggy at the moment.
[BENCHMARKS]
* NEW: Little meaningless changes.
[INTERPRETER]
* NEW: JIT: Support for FOR EACH loops.
* BUG: JIT: Handle function values that are put on stack before calling them.
[COMPILER]
* NEW: JIT: Optimization of mathematic functions.
* NEW: JIT: Support for FOR EACH loops.
* NEW: JIT: Remove successive POP_x() / PUSH_x().
* NEW: JIT: Optimization of DIV and MOD.
* NEW: JIT: Support of internal control local variables used by SELECT and FOR EACH.
* NEW: JIT: Support for SWAP.
[GB.JIT]
* NEW: Optimization of mathematic functions.
* NEW: Variants management.
* NEW: All conversions are handled now.
* NEW: FOR EACH loops are implemented.
[INTERPRETER]
* NEW: Implement return value of JIT methods.
* NEW: Support for calling '.' operator from a JIT method.
[COMPILER]
* BUG: JIT: Fix detection of native arrays.
* BUG: JIT: Delete translated file if a class has no fast method anymore.
* BUG: JIT: Prefix JIT method with "jit_" to avoid possible conflicts.
* BUG: JIT: Fix variable initialization.
* NEW: JIT: Complete datatype support.
* NEW: JIT: Support for SWAP.
* NEW: JIT: Support for array operators.
* BUG: JIT: Fix arithmetic operators.
* NEW: JIT: Implement ME and "." operator.
* NEW: JIT: Complete GOSUB / RETURN support.
* NEW: JIT: Support for DIV and MOD operators. Not optimized yet.
[ARCHIVER]
* NEW: Put JIT translation in the archive.
[GB.JIT]
* NEW: Complete datatype support. Variant is not supported yet.
* NEW: Complete GOSUB / RETURN support.
* NEW: Support for ME and '.' operator.
[CONFIGURATION]
* NEW: Add '.jit' directory to '.gitignore'.
[COMPILER]
* NEW: New '-j' option that disables just in time compilation.
* NEW: JIT: Support for private functions calls.
* NEW: JIT: Support for native arrays accessors.
* BUG: JIT: Fix loop support.
* NEW: JIT: Support for GOSUB.
[GB.JIT]
* NEW: GB_JIT_DEBUG is an environment variable that defines if JIT compilation debugging messages are printed.
* NEW: GB_JIT_CFLAGS is an environment variable that defines the JIT compilation flags. The default is "-O3".
* NEW: Support for native arrays accessors.
[COMPILER]
* BUG: JIT: Fix local variable referencing.
* NEW: JIT: Implement NEW operator and array accessors.
[INTERPRETER]
* NEW: Support for JIT NEW operator and array accessors.
[GB.JIT]
* NEW: Support for object datatypes.
* NEW: Implement NEW operator and array accessors.
[COMPILER]
* NEW: JIT: Support for FOR...TO...NEXT loops.
* NEW: JIT: Support for Len(), Left$(), Mid$(), and Right$().
* NEW: JIT: Subroutines return values are now hadled correctly.
[GB.JIT]
* NEW: Compile JIT code with -O3.
[COMPILER]
* NEW: Internal initialization functions now can be JIT translated.
* NEW: Support of subroutine calling completed. Interpreter subroutines are called if there is no optimization implemented in the JIT translation.
[INTERPRETER]
* NEW: Remove old JIT stuff.
[GB.JIT]
* NEW: Use 'gambas.h' and 'gb.jit.h' to compile translated code.
* NEW: Work on JIT continues...
* NEW: Better panic errors.
[INTERPRETER]
* NEW: Remove the old JIT stuff.
* NEW: Calls gb.jit at runtime if needed. If a fast function has no jit implementation, the bytecode version is used.
* NEW: Start defining the JIT interface needed by the JIT functions.
* NEW: The common static character buffer is now twice the size of the maximum symbol length, to avoid possible overflows.
[GB.JIT]
* NEW: Compilation starts to work.
* NEW: Debugging messages.