TGUI

Cross-platform modern c++ GUI

ZLIB License

Stars
813
Committers
24

Bot releases are hidden (Show)

TGUI -

Published by texus about 2 months ago

Changelog:

  • Added uniform scrollbar access to all widgets with a scrollbar
  • Added getter for hovered item to ListBox, ListView, PanelListBox, Tabs and TreeView
  • Added option to buttons to only repond to clicks and ignore space/return key presses
  • Added setItemIndexInParent and getItemIndexInParent functions to TreeView
  • Added changeItemHierarchy to TreeView
  • Scrollbar::setOrientation will no longer flip width and height
  • Scrollbar::setSize no longer affects orientation once setOrientation is called
  • Grid didn't update its size in remove and setAutoSize functions while auto-sizing
  • Opacity of ScrollablePanel wasn't applied to its scrollbars
  • Setting opacity of SeparatorLine had no effect
  • SFML backend no longer uses sf::Keyboard::isKeyPressed to check modifier keys
TGUI -

Published by texus 3 months ago

Changelog:

  • Fixed infinite loop in Theme::replace (introduced in TGUI 1.4.0)
  • PanelListBox now has proper background color and borders in White theme
TGUI -

Published by texus 3 months ago

Changelog:

  • New widget: SplitContainer
  • Added MaxValue getter to Scrollbar
  • Added ScrollbarMaxValue getters to widgets with a scrollbar
  • Added getPixelsPerPoint() to BackendRenderTarget
  • Inner size of ScrollablePanel now depends on shown scrollbars
  • Replaced VerticalScroll with Orientation in Slider, Scrollbar and SpinButton
  • Multiple fixes to EditBoxSlider widget
TGUI -

Published by texus 4 months ago

Changelog:

  • New backend: raylib
  • New widget: EditBoxSlider (PR #238)
  • All widgets can now be configured to ignore mouse events
  • Added HorizontalLayout and VerticalLayout to replace widget-specific enums
  • Added method to associate user data to combo box items
  • Added onWindowFocus and onWindowUnfocus signals
  • Renamed isKeptInParent to getKeepInParent in ChildWindow
  • Renamed limitTextWidth to setTextWidthLimited in EditBox
  • String::fromNumber now supports int8_t (but no longer accepts pointers)
  • BackendTextureSFML::getInternalTexture() now returns a pointer
  • BackendFontSFML::getInternalFont() now return a pointer
TGUI -

Published by texus 7 months ago

Changelog:

  • Added Theme::replace function
  • Added TreeView::changeItem function
  • Added TreeView::getNode function
  • Added ignoreMouseEvents function to canvas widgets
  • Added Panel::setEventBubbling to enable more intuitive event propagation
  • Replaced getWidgetAtPosition with getWidgetAtPos
  • getWidgetBelowMouseCursor was given a parameter for recursive search
  • Textures with different part rects were incorrectly considered equal
  • showWithEffect didn't show widget if a hide animation was still playing
  • Setting opacity of a SubWidgetContainer didn't work
  • SubWidgetContainer didn't support show/hide animations
TGUI -

Published by texus 12 months ago

Changelog:

  • Added AutoLayout that lets widget fill entire side of parent
  • Any column in ListView can now be auto-sized and expanded
  • Added methods for arrow key navigation between widgets
  • Added getColumnDesignWidth function to ListView
  • Added TextOutlineColor and TextOutlineThickness to ProgressBar renderer
  • MiddleRect of Texture can now be changed after loading
  • Hover state is now reset when mouse leaves the window
TGUI -

Published by texus about 1 year ago

Changelog:

  • Added PanelListBox widget (PR #193)
  • FileDialog can now create new folders (PR #192)
  • Added MessageBox::changeButtons to set multiple buttons at once (PR #215)
  • Added methods to ScrollablePanel to check if scrollbar is currently shown (PR #213)
  • Pressing the tab key can now insert custom text in TextArea (PR #211)
  • Widgets in SubwidgetContainer didn't inherit the font of the container (PR #208)
  • Added onCaretPositionChange, getCaretLine() and getCaretColumn() to TextArea (PR #207)
  • Added onCaretPositionChange signal to EditBox (PR #206)
  • Added missing getSignal() functions to TabContainer and SpinControl (PR #204)
  • BoxLayout::setWidgetIndex didn't immediately update the positions (PR #203)
  • Added tab alignment and fixed tab size to TabContainer (PR #174)
  • Added SDL_Renderer, GLFW/OpenGL and SFML/OpenGL backends
  • Added RichTextLabel widget
  • Support two finger scrolling on touch screens
  • Added font scaling to keep text sharp while view is smaller than window size
  • Textures can now be loaded from base64 string
  • ListView columns can now be resizable
  • ListView icons can also be saved in form file
  • Position of text in buttons can now be changed
  • Added changeMenuItem function to MenuBar to change the text of a menu
  • Added SizeHorizontal and SizeVertical mouse cursors
  • Added hasUserData to Widget
  • Added LabelAlignment and ButtonAlignment to MessageBox
  • Added ScrollbarValue to Label
  • Theme files now support global properties
  • Theme files now support inheritance between sections
  • Improved scrolling with nested scrollbars
  • Added UseWideArrows property to SpinControl
  • Added moveWithAnimation and resizeWithAnimation functions to Widget
  • Added case-insensitive variants of startsWith and endsWith to String
  • Tool tips are now shown on disabled widgets by default
  • Word-wrapped lines no longer begin with whitespace
  • IME pre-edit window will be positioned next to the text cursor on Windows
  • Typing in FileDialog now selects the first file starting with the typed letter
  • Added getWindow() function to Gui
  • handleEvent now always returns true for scroll events when mouse is on top of a widget
  • onFileSelect signal in FileDialog is no longer called on cancel
  • Renamed onSelectionChanged to onSelectionChange in TabContainer
  • TabContainer now inherits from Container instead of SubwidgetsContainer
  • Removed padding from RadioButtonGroup
  • Black, BabyBlue and TransparentGrey themes can now be used for all widgets
  • ClientSize of ChildWindow can now be a layout instead of only a constant
  • TextSize can now also be set in theme file
  • Many bug fixes and minor improvements
TGUI -

Published by texus about 1 year ago

Changelog:

  • Added MessageBox::changeButtons to set multiple buttons at once (PR #215)
  • Added methods to ScrollablePanel to check if scrollbar is currently shown (PR #213)
  • Pressing the tab key can now insert custom text in TextArea (PR #211)
  • Widgets in SubwidgetContainer didn't inherit the font of the container (PR #208)
  • Added onCaretPositionChange, getCaretLine() and getCaretColumn() to TextArea (PR #207)
  • Added onCaretPositionChange signal to EditBox (PR #206)
  • Added missing getSignal() functions to TabContainer and SpinControl (PR #204)
  • BoxLayout::setWidgetIndex didn't immediately update the positions (PR #203)
  • Fixed EditBox::getSelectedText() returning too many characters
  • MenuBar crashed when menu closed (regression in 1.0-rc)
  • Slider thumb had wrong position if texture needed to be rotated
  • Icon in BitmapButton had wrong ratio when rescaled
  • Prevent crash if provided layout is recursive
  • Renamed onSelectionChanged to onSelectionChange in TabContainer
  • TabContainer now inherits from Container instead of SubwidgetsContainer
TGUI -

Published by texus over 1 year ago

Changelog:

  • Added PanelListBox widget (PR #193)
  • FileDialog can now create new folders (PR #192)
  • Improved scrolling with nested scrollbars
  • Added UseWideArrows property to SpinControl
  • Support two finger scrolling on touch screens
  • Added getWindow() function to Gui
  • handleEvent now always returns true for scroll events when mouse is on top of a widget
TGUI -

Published by texus almost 2 years ago

Changelog:

  • Added RichTextLabel widget
  • Added font scaling to keep text sharp while view is smaller than window size
  • Added tab alignment and fixed tab size to TabContainer (PR #174)
  • onFileSelect signal in FileDialog is no longer called on cancel
  • Removed padding from RadioButtonGroup
  • Close button was broken when ChildWindow was copied
TGUI -

Published by texus about 2 years ago

Changelog:

  • Added SDL_Renderer backend (SDL + SDL_ttf)
  • Added GLFW/OpenGL backend (glfw3 + OpenGL >= 3.3 or GLES >= 2.0)
  • Added SFML/OpenGL backend (sfml-window + OpenGL >= 3.3)
  • Existing SFML-Graphics and SDL/OpenGL backends were redesigned
  • Black, BabyBlue and TransparentGrey themes can now be used for all widgets
  • ClientSize of ChildWindow can now be a layout instead of only a constant
  • Typing in FileDialog now selects the first file starting with the typed letter
  • TextSize can now also be set in theme file
  • Added moveWithAnimation and resizeWithAnimation functions to Widget
  • Added case-insensitive variants of startsWith and endsWith to String
  • Textures can now be loaded from base64 string
  • ListView columns can now be resizable
  • ListView icons can also be saved in form file
  • Position of text in buttons can now be changed
  • Added changeMenuItem function to MenuBar to change the text of a menu
  • Added SizeHorizontal and SizeVertical mouse cursors
  • Added hasUserData to Widget
  • Added LabelAlignment and ButtonAlignment to MessageBox
  • Added ScrollbarValue to Label
  • Theme files now support global properties
  • Theme files now support inheritance between sections
  • Tool tips are now shown on disabled widgets by default
  • Word-wrapped lines no longer begin with whitespace
  • Filter CR in TextArea to prevent issues when pasting CRLF on Windows
TGUI -

Published by texus over 2 years ago

Changelog:

  • Fixed Gui Builder crash when creating or loading any form
  • Fixed crash when position of ChildWindow depends on its size
TGUI -

Published by texus over 2 years ago

Changelog:

  • Default theme no longer affects loading widgets from file
  • Added TextAlignment property to ListBox
  • Added onScroll signal to ListBox
  • Added option to show tool tips on disabled widgets
  • Up and down keys in ListBox now move scrollbar if needed
  • Renderers shared in form files no longer save in random order
  • Pasting still worked in TextArea when it was read-only
  • ListBox::setMaximumItems didn't reset selected item when removed
  • Fixed issue with renderer property within custom renderer outside tgui namespace
  • Parsing invalid UTF-8 character could trigger a debug assert in Visual Studio
  • Widget could remain in hover state after hiding it
  • Fixed broken text rendering in SDL/OpenGL backend
  • List of ComboBox did not use the font set in the ComboBox
  • Keeping child window inside parent didn't take origin into account
TGUI - v0.10-beta

Published by texus over 2 years ago

Changelog:

  • Existing backends were rewritten
  • Added SFML/OpenGL backend (sfml-window + OpenGL >= 3.3)
  • Added GLFW/OpenGL backend (glfw3 + OpenGL >= 3.3 or GLES >= 2.0)
  • Added SDL_Renderer backend (SDL + SDL_ttf)
  • Added moveWithAnimation and resizeWithAnimation functions to Widget
  • Added case-insensitive variants of startsWith and endsWith to String
  • ClientSize of ChildWindow can now be a layout instead of only a constant
  • Typing in FileDialog now selects the first file starting with the typed letter
  • TextSize can now also be set in theme file
  • Tool tips are now shown on disabled widgets by default
TGUI -

Published by texus almost 3 years ago

Changelog:

  • Added RoundedBorderRadius property to Panel renderer
  • Touch events didn't work in SDL backend
  • Default DistanceToSide in Tabs is now rounded to nearest integer
  • Adding widget to container no longer overwrites name if no name is given
  • Container::get now also searches inside SubwidgetContainer widgets
  • Renamed onAnimationFinish to onShowEffectFinish
  • Renamed ShowAnimationType to ShowEffectType
  • Loading BMP files didn't work
  • Scrollbar in Label didn't inherit opacity
  • showWithEffect/hideWithEffect didn't work properly is position was percentage
TGUI -

Published by texus almost 3 years ago

Changelog:

  • Arrow keys can now be used to navigate TreeView
  • Control/shift now affect using arrow keys in multi-select ListView
  • Added Texture::setDefaultSmooth to choose default interpolation setting
  • String::split now takes an optional boolean to trim the returned values
  • Kerning calculation now takes bold text style into account (only if SFML >= 2.6)
  • Added setWidgetIndex and getWidgetIndex functions to container
  • Added String::contains function
  • saveWidgetsToFile now makes paths relative to the form path
  • Tool tips will no longer be displayed outside the window when close to the side
  • Exception is now thrown when loading a font fails
  • TabContainer can now create the panels internally
  • Button text was lost when copying button
  • Down state of button wasn't displayed properly anymore when a focus state existed
  • Image in BitmapButton was searched in wrong directory when loading from form file
  • Form files didn't load on Windows when path contained non-ANSI characters
  • Modification time in FileDialog was empty when MinGW compiler was used
  • Clipping in SDL backend was incorrect when view and viewport were changed
  • Opacity of color wheel wasn't set when making ColorPicker transparent
TGUI -

Published by texus over 3 years ago

Changelog:

  • Added new SpinControl widget (combination of EditBox and SpinButton) (PR #135)
  • Added new TabContainer widget (combination of Tabs with Panel below) (PR #139)
  • Holding down arrow on SpinButton will now keep chaning the value (PR #137)
  • Added insertItem function to ListView (PR #138)
  • Up and down arrows now change selected item in ListBox and ListView (PR #146)
  • Horizontal scrollbar can now depend on item width in ListView (PR #147)
  • Added support to copy selected ListView items to clipboard (PR #148)
  • Add setTextSize for SubwidgetContainer (PR #149)
  • Added SDL/OpenGL backend as alternative for default SFML backend
  • Rewrote signal system again, b->connect("Pressed",...) is now b->onPress(...)
  • Added new FileDialog widget
  • Added new ToggleButton widget
  • Added new SeparatorLine widget
  • Added support for setting mouse cursor + use them on resizable child windows
  • Added timers and optional gui.mainLoop()
  • Added experimental setOrigin, setScale and setRotation functions to Widget
  • Added ThumbWithinTrack to Slider renderer to have thumb align with track on sides
  • Added DoubleClick signal to Panel
  • Added ViewChanged signal to GuiBase
  • Added hover and selected border colors for Tabs
  • Added TextureSelectedTrack property to RangeSlider renderer
  • Added String::fromNumberRounded to convert float to string with a fixed amount of decimals
  • Added startsWith and endsWith helper functions to String
  • Added RoundedBorderRadius property to button renderer
  • Separators can be added to MenuBar by inserting menu items with "-" string
  • ListBox and ListView can now store user data in their items
  • ListView icons can be given a fixed size to rescale all icons to requested size
  • Replaced all std::string and sf::String by tgui::String
  • Replaced Text, Color, Rect and Vector2 classes from SFML with own versions
  • Replaced sf::Text::Style with tgui::TextStyle
  • Replaced setView in Gui by view/viewport setters with absolute or relative values
  • Added onClosing signal to ChildWindow to have a better way to abort closing it
  • Signal names, renderer names and widget/renderer properties are now case-sensitive
  • Added setWidth and setHeight helper functions
  • Added getCheckedRadioButton to RadioButtonGroup
  • Textures are now smooth by default
  • Size of ChildWindow now includes borders and title bar
  • When setView is not called on Gui, view will now scale with window size
  • Menus of menu bar are now always on top of all other widgets
  • Swapped padding and alignment parameters of addWidget in Grid
  • Moved uncheckRadioButtons from Container to RadioButtonGroup
  • Theme::setDefault now takes a shared_ptr or a filename as parameter
  • Changed return type of addItem in ListBox/ComboBox to return index of the item
  • Changed Knob value type from int to float
  • Changed default value of ChangeItemOnScroll in ComboBox to false
  • Changed default value of ExpandDirection in ComboBox to Automatic
  • Changed default value of ScrollbarPolicy in Label to Automatic
  • Renamed TextBox to TextArea
  • Renamed getMenuList in MenuBar to getMenus
  • Renamed mouseOnWidget to isMouseOnWidget
  • Renamed TextStyle class to TextStyles and TextStyles::Style enum to TextStyle
  • Default scroll amount in ScrollablePanel now depends on global text size
  • Gui::getFont now returns the global font if no font was set in the Gui
  • Container now translates the widget position before calling draw function
  • Dragging scrollbar inside child window didn't work when mouse left child window
  • Selected part of RangeSlider wasn't drawn when using textures
  • Removed all code that was marked as deprecated
  • Binding left and top in layouts now works correctly when the origin is changed
  • Some other small changes that weren't added to the changelog
TGUI -

Published by texus over 3 years ago

Changelog:

  • ColorPicker widget added (PR #145)
  • Added sortWidgets to Container to update the z-order of all widgets (PR #141)
  • Added getWidgetBelowMouseCursor to Gui and getWidgetAtPosition to Container/Gui
  • Added moveWidgetForward/moveWidgetBackward to Container to move widget one step in z-order
  • Added parameter to focusNextWidget/focusPreviousWidget in Container to not look recursively
  • Added enableSkipDrawingWidgetsOutsideView() to ScrollablePanel to enable optimization
  • Tabs::remove didn't recalculate the tabs width
  • SubwidgetContainer wasn't being compiled into the library
  • Text orientation in Button wasn't updated when size changed
  • Text position in EditBox didn't update when increasing width if text didn't fit before
TGUI -

Published by texus over 3 years ago

Changelog:

  • Up and down arrows now change selected item in ListBox and ListView (PR #146)
  • Horizontal scrollbar can now depend on item width in ListView (PR #147)
  • Added support to copy selected ListView items to clipboard (PR #148)
  • Add setTextSize for SubwidgetContainer (PR #149)
  • SDL backend is now compatible with OpenGL 4.1 and OpenGL ES 3.0
  • Added new FileDialog widget
  • Added new ToggleButton widget
  • Added new SeparatorLine widget
  • Added RoundedBorderRadius property to button renderer
  • Added String::fromNumberRounded to convert float to string with a fixed amount of decimals
  • Added startsWith and endsWith helper functions to String
  • Added TextureSelectedTrack property to RangeSlider renderer
  • Selected part of RangeSlider wasn't drawn when using textures
  • Search resources in form file relative to form file path
  • Print warning for invalid layout strings
  • Binding left and top in layouts now works correctly when the origin is changed
TGUI -

Published by texus about 4 years ago

  • Added new SpinControl widget (combination of EditBox and SpinButton) (PR #135)
  • Added new TabContainer widget (combination of Tabs with Panel below) (PR #139)
  • Holding down arrow on SpinButton will now keep chaning the value (PR #137)
  • Added insertItem function to ListView (PR #138)
  • Added support for setting mouse cursor + use them on resizable child windows
  • Added timers and optional gui.mainLoop()
  • Added experimental setOrigin, setScale and setRotation functions to Widget
  • Added ThumbWithinTrack to Slider renderer to have thumb align with track on sides
  • Added DoubleClick signal to Panel
  • Added ViewChanged signal to GuiBase
  • Added hover and selected border colors for Tabs
  • ListBox and ListView can now store user data in their items
  • Rewrote signal system again, b->connect("Pressed",...) is now b->onPress(...)
  • Replaced all std::string and sf::String by tgui::String
  • Replaced Text, Color, Rect and Vector2 classes from SFML with own versions
  • Replaced sf::Text::Style with tgui::TextStyle
  • Replaced setView in Gui by view/viewport setters with absolute or relative values
  • Added onClosing signal to ChildWindow to have a better way to abort closing it
  • Signal names, renderer names and widget/renderer properties are now case-sensitive
  • Added setWidth and setHeight helper functions
  • Added getCheckedRadioButton to RadioButtonGroup
  • Textures are now smooth by default
  • Size of ChildWindow now includes borders and title bar
  • When setView is not called on Gui, view will now scale with window size
  • Menus of menu bar are now always on top of all other widgets
  • Swapped padding and alignment parameters of addWidget in Grid
  • Moved uncheckRadioButtons from Container to RadioButtonGroup
  • Theme::setDefault now takes a shared_ptr or a filename as parameter
  • Changed return type of addItem in ListBox/ComboBox to return index of the item
  • Changed Knob value type from int to float
  • Changed default value of ChangeItemOnScroll in ComboBox to false
  • Changed default value of ExpandDirection in ComboBox to Automatic
  • Changed default value of ScrollbarPolicy in Label to Automatic
  • Renamed TextBox to TextArea
  • Renamed getMenuList in MenuBar to getMenus
  • Renamed mouseOnWidget to isMouseOnWidget
  • Renamed TextStyle class to TextStyles and TextStyles::Style enum to TextStyle
  • Default scroll amount in ScrollablePanel now depends on global text size
  • Gui::getFont now returns the global font if no font was set in the Gui
  • Container now translates the widget position before calling draw function
  • Dragging scrollbar inside child window didn't work when mouse left child window
  • Removed all code that was marked as deprecated