aboutsummaryrefslogtreecommitdiff
path: root/gui/widgets/tab.cpp
AgeCommit message (Collapse)Author
2020-01-04GUI: Introduce dynamic layoutsBastien Bouclet
Prior to this change, a GUI layout was only affected by the screen size. Now, a layout can additionally be influenced by the GUI dialog and widgets that uses it. This capability is leveraged to implement the following features: * Layout elements that are not bound to a GUI widget do not take space. This means that dialogs where the widgets shown depend on for example a feature being enabled at configure time no longer have blank spaces. * Widgets can define a minimal required size for their contents not to be cut. For now this is only used for buttons so their width is always sufficient for their caption not to be cut. This mechanism could be applied to other widget types in the future.
2019-10-15GUI: Fix crash when clicking and dragging a tab widgetCameron Cawley
2019-10-03GUI: Add Missing Switch Default CasesD G Turner
These are flagged by GCC if -Wswitch-default is enabled.
2019-09-01JANITORIAL: Remove some trailing whitespacesJaromir Wysoglad
2019-09-01TTS: Add text to speech to the GUI.Jaromir Wysoglad
2019-08-03GUI: Fix TabWidget's < and > buttonsAlexander Tkachev
These were incorrectly positioned (typos in code, missing value in one expression).
2018-05-20JANITORIAL: Remove trailing whitespaceAdrian Frühwirth
2018-04-19GUI: Unify clip and non-clip draw callsBastien Bouclet
2018-01-27GUI: Remove Dialog::markAsDirty to expose full GUI redrawsBastien Bouclet
2018-01-27GUI: Implement dirty-checking for widget redrawsBastien Bouclet
2017-04-06GUI: Add method to know if a widget contains a given widgetThierry Crozat
2017-03-01GUI: Increase tab title spacingWillem Jan Palenstijn
2017-02-28GUI: Give each tab in TabWidget its own widthWillem Jan Palenstijn
The width of each tab is now computed from its title, independently of the other tabs. This increases the number of tabs that fit on the screen. This rewrite also fixes a bug where if the window size increased while _firstVisibleTab > 0, some tabs would become inaccessible when the scroll buttons were hidden. The layout key Globals.TabWidget.Tab.Width is now treated as minimal tab width. This is set so that the tabs fit reasonably well in lowres layouts. At the same time, this reduces the lowres scroll buttons heights to fit. This patch makes the Nintento DS hacks in TabWidget obsolete. (Hopefully! I'm not able to test.)
2017-02-22SDL: Fix erratic analog pointer + control optionsrsn8887
Fixes erratic speeds in analog pointer motion Implemented option to set analog/keyboard pointer speed and control the analog joystick deadzone. The deadzone option appears only if the build supports analog joystick (via JOY_ANALOG define)
2016-10-30GUI: Setting the active tab also ensures it is visible in the tab barThierry Crozat
2016-10-22GUI: Fix possible access to free'ed memory or double deletion in tab widgetThierry Crozat
The issue could occur when adding or removing widgets to a tab, and then not switching to a different tab before the destructor or reflowLayout() were called. In such a case the firstWidget of the current widget in the _tabs list could be out of date. Accessing this first widget from the destructor or from reflowLayout() could then cause a crash, or random issues caused to access to free'ed memory. In theory this could also lead to a memory leak, although I don't think this could occur in our current code. Usually we add several tabs to a TabWidget and then switch back to the first tab after building all the tabs. So in such a case the issue would not occur. But because we are deleting and reconstructing the clear buttons for the MIDI and Path tabs of the options dialog from reflowLayout(), if the current tab is the Path tab, it would be kept as active tab after adding and removing widget to it and the issue would occur. This fixes bug #9618.
2016-07-12GUI: Fix TabWidget height issuesAlexander Tkachev
Changes theme stx files to specify TabWidget's type. That fixes wrong TabWidget height. Changes TabWidget's getHeight() to return not only "children" height, but also tabs height. That fixes wrong clipping area. Changes Widget's findWidget to use getHeight(). That fixes bug when widgets in the bottom of TabWidget were not reacting to the mouse events.
2016-07-03GUI: Add drawTabClip()Alexander Tkachev
2016-07-03GUI: Add ThemeLayoutTabWidgetAlexander Tkachev
2016-07-03GUI: Fix Dialog's and TabWidget's reflowLayout()Alexander Tkachev
2014-04-06GUI: Tab cycling handles multiple themes.Zerophase
First visible tab moves up when a theme's width cannot fit another tab.
2014-04-01GUI: Fix tab cycling when total tabs increase.Zerophase
Tab cycling ignores tab width, and slides correctly for larger tab counts.
2014-04-01GUI: Add Tab cycling to TabWidgetZerophase
Tab and Shift-Tab can now cycle between each Tab of the Edit Game menu.
2014-02-18GUI: Make GPL headers consistent in themselves.Johannes Schickel
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-28JANITORIAL: Reduce header dependencies in shared codeOri Avtalion
Some backends may break as I only compiled SDL
2010-11-16GUI: Commit some changes missing in my previous commit (oops)Max Horn
svn-id: r54266
2010-11-16GUI: Move major widgets to new directory gui/widgetsMax Horn
Also renamed the source/header files, now they are more closely aligned to how we rename most other source files svn-id: r54264