summaryrefslogtreecommitdiff
path: root/src/gui/widgets/dropdown.h
AgeCommit message (Collapse)AuthorFilesLines
2025-03-24Expanded GUI theming capabilitiesThorbjørn Lindeijer1-0/+7
* Moved previously hardcoded values for frame size, padding and title bar height to the Skin. * Added support for rendering colored rectangles (used for scroll bar background). * Scroll bar width is now determined by its skin. * Added separate skins for horizontal and vertical scroll bars and horizontal and vertical scroll markers and added a skin for the shortcut box. * Added support for hovered state on window close button.
2025-03-14Moved widget drawing code into ThemeThorbjørn Lindeijer1-15/+0
This is cleaner overall since now each widget type no longer needs to keep track of its own instances and updating of the GUI alpha. It also introduces a single point from where the GUI theme support can be enhanced. Theme is no longer a singleton, though for now there is a single instance owned by the Gui singleton. Widgets adjusted to delegate their painting to the Theme: * Button * Tab * TextField * CheckBox * RadioButton * Slider * DropDown * ProgressBar * ScrollArea * ResizeGrip * PlayerBox (by subclassing ScrollArea) The Window and Popup widgets already use the theme through the Skin class. They can actually use a different skin per instance, though this feature is only used by the SpeechBubble.
2025-02-26Use ResourceRef for all resource typesThorbjørn Lindeijer1-1/+2
All ResourceManager functions that load resources now return respective ResourceRef values, which helps to make sure resources are properly cleaned up. The Sound class was cleaned up and now also allows SoundEffect resources to be unloaded. The Animation class now keeps its ImageSet loaded only as long as necessary. Previously, SimpleAnimation and ParticleEmitter would keep the ImageSet loaded indefinitely by never decreasing its reference count. Reduced duplicated animation loading code between SimpleAnimation and ParticleEmitter.
2025-01-21Replaced include guards with #pragma onceThorbjørn Lindeijer1-5/+1
Thanks to https://github.com/cgmb/guardonce and a follow-up replace to remove duplicated newlines at end of file: find src -type f -name '*.h' -exec \ sed --in-place -e :a -e '/^\n*$/{$d;N;};/\n$/ba' {} \; Source: https://unix.stackexchange.com/questions/81685/how-to-remove-multiple-newlines-at-eof Fixes compile on macOS, which appears to have been due to the EVENT_H include guard.
2024-02-13General code cleanupsThorbjørn Lindeijer1-1/+1
* Removing unused includes * Use member initialization * Use range-based for loops * Use nullptr * Removed no longer used aliases * Use override * Don't use else after return * Use '= delete' to remove implicit members * Use std::string::empty instead of comparing to ""
2024-01-26Apply C++11 fixitsThorbjørn Lindeijer1-10/+10
modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using
2012-01-26Updated copyrights to 2012Thorbjørn Lindeijer1-1/+1
2011-10-23Fixed a certain class of Doxygen warningsThorbjørn Lindeijer1-3/+1
All cases of documentation for non-existing parameters are now fixed. Also marked a few getters as 'const', removed some superfluous 'inline' keywords and removed the unused 'forceQuantity' option from ItemContainer. Reviewed-by: Yohann Ferreira
2010-02-22Modify copyright headersFreeyorp1-1/+2
2010-02-20License header update for The Mana ClientThorbjørn Lindeijer1-4/+3
2010-02-14Fixed DropDowns not collapsing when an item was clicked on, or enter orTametomo1-0/+2
space was pressed. Signed-off-by: Tametomo <irarice@gmail.com>
2010-02-14Release modal mouse focus in DropDowns when focus is lost. If notTametomo1-0/+4
released, this can cause the user to think that the client has frozen up when dialogs such as the quit dialog take modal focus. Signed-off-by: Tametomo <irarice@gmail.com>
2010-02-08Delete models explicitly rather than relying on booleansThorbjørn Lindeijer1-1/+1
It is more clear in the end. Also fixed deleting of the mode list model.
2010-02-07Cleanup some memory issuesJared Adams1-1/+1
2010-02-07Updated Copyright year to 2010!Bertram1-1/+1
Also added the update copyright tool from the Wormux Team. ( And not forgetting credit's due. :P )
2009-09-03Resolved Mantis #847: Login stage Windows won't go less than the default gui ↵Bertram1-0/+5
opacity. Of course, in-game, the wanted opacity still shows up.
2009-04-20Fixed key handling in dropdowns when the dropdown portion isn't visible.Tametomo1-0/+10
Signed-off-by: Tametomo <irarice@gmail.com> Signed-off-by: Bjørn Lindeijer <bjorn@lindeijer.nl>
2009-04-15Have the DropDown create its ScrollArea and ListBoxBjørn Lindeijer1-31/+4
And also clean them up again. Fixes some memory leaks and simplifies the code. Also got rid of the basically unused "opaque" setting of DropDown.
2009-03-26First batch of include cleanupBjørn Lindeijer1-13/+13
Since the relative includes are getting ugly and somewhat inconvenient, we'll switch to includes relative to the project root. We've done this for a while already with tmwserv. Another rule which we've always had but was never written down, is that each source file first includes its own header. This is common practice and ensures each header compiles without needing other stuff to be included first. Somebody using Code::Blocks might want to fix the project file by adding the 'src' directory to the list of include paths.
2009-02-15More copyright header fixesBjørn Lindeijer1-1/+1
2009-02-15Merge commit 'aethyra/master'Bjørn Lindeijer1-3/+3
Conflicts: CMakeLists.txt configure.ac data/help/header.txt packaging/windows/setup.nsi po/POTFILES.in src/being.cpp src/being.h src/game.cpp src/gui/color.cpp src/gui/color.h src/gui/equipmentwindow.h src/gui/popupmenu.cpp src/gui/recorder.cpp src/gui/setup_colors.h src/gui/setup_keyboard.cpp src/gui/setup_keyboard.h src/gui/skill.cpp src/gui/speechbubble.cpp src/gui/speechbubble.h src/gui/table.cpp src/keyboardconfig.cpp src/keyboardconfig.h src/localplayer.cpp src/main.cpp src/main.h src/map.cpp src/resources/colordb.cpp src/resources/colordb.h src/resources/emotedb.cpp src/resources/emotedb.h src/text.cpp src/text.h src/tmw.rc src/winver.h
2009-02-10Fixed header files, as well as removed the unused buddy list class (notIra Rice1-6/+6
useful since buddy lists are tracked through the player relation interface instead) Signed-off-by: Ira Rice <irarice@gmail.com>
2009-02-04Went through the gui folder and revised the include statements to notIra Rice1-7/+0
include anything not needed by that specific widget or window. This appears to have cleaned up system performance a bit on my current setup, where it went from idling on 45% in game with opengl down to 30% now. Also moved iptostring to the tostring header, as importing all of network.h is a little overkill to use that function, and it goes along with the basic functions that are in that header file anyways. TODO: find out a way to get rid of warnings when a class doesn't use this function. Signed-off-by: Ira Rice <irarice@gmail.com>
2009-02-03Modified the dropdown class to handle opacity.Ira Rice1-1/+21
Signed-off-by: Ira Rice <irarice@gmail.com>
2008-11-18Pedantic fixes to the client, where I alphabetized all of the include Ira Rice1-3/+3
statements, as well as removing the new skill dialog, which we do not, nor will we use (if we do, it'd be a new one that we'd make). WARNING!!! This, and all other previous builds have a linker error for the Gnome libraries version 4.3.2 on my setup. It's assumed that this is also the case for other users of this library as well. I'm currently assuming that there's a bug in the compiler itself, and will look into reporting this, but in the mean time, it doesn't build for these users, unfortunately. Sorry about this.
2008-10-03Made a new Windows binary, as well as fix some files to make the Windows Ira Rice1-0/+1
build work (although there might be a bit too many guichanfwd.h references. But that's ok. I'm too lazy to track down which ones are necessary and which ones aren't at the moment).
2008-07-18Import of client treeLloyd Bryant1-0/+85