summaryrefslogtreecommitdiff
path: root/src/gui/widgets/listbox.cpp
AgeCommit message (Collapse)AuthorFilesLines
2025-04-25GUI: Added support for multiple color palettes to ThemeThorbjørn Lindeijer1-3/+5
Each Skin can point to a different palette, which can be used to tweak text colors where necessary. For now there is no generic solution for this, instead a number of locations have been adjusted to take the palette into account: * ChatWindow sets its palette on the BrowserBox used in its tabs. * Popup sets its palette on child widgets when they are added (covering BrowserBox, Label and TextBox). * ItemPopup now uses its palette when looking up colors. The BrowserBox now retrieves its numbered text colors from the theme. Also added OLDCHAT, AWAYCHAT and GLOBAL theme colors, with ##g, ##o and ##a to choose these colors respectively. Fixed ImageRect move constructor. TextPreview class was cleaned up from unused functionality. Being name colors are no longer different between the name shown on the being and the name shown in the SpeechDialog.
2025-03-14Moved widget drawing code into ThemeThorbjørn Lindeijer1-16/+3
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-01-20Made client config statically typedThorbjørn Lindeijer1-1/+1
This makes accessing the config values much faster, since it no longer needs to do a lookup nor string conversion, which means we could remove some needless copying of the values. Overall it makes it easier to find out where settings are used and it puts the defaults along with the declaration. Options with default values are no longer saved to the config file. This does not include unrecognized options, which are kept around to provide some compatibility with older clients. While most basic options have kept the same name, more complicated settings like window geometry, shortcuts, outfits, etc. now have their own XML elements. Older clients will ignore these and erase them when saving the configuration.
2024-04-02General code cleanupsThorbjørn Lindeijer1-5/+1
* Removed some unused includes * Removed unused ListBox::mFont * Removed wrong cast to SDL_Scancode * Removed superfluous .c_str() * Removed superfluous explicit std::string construction * Removed unused variable * Use more emplace_back * Turned FindBeingFunctor into a lambda * Avoid needless pointer references for ambient layers and use a vector
2024-02-13General code cleanupsThorbjørn Lindeijer1-1/+0
* 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 ""
2012-01-26Updated copyrights to 2012Thorbjørn Lindeijer1-1/+1
2011-06-02Fixed missing action event when clicking on a ListBox itemThorbjørn Lindeijer1-0/+5
This event got lost in commit c6a081ba610c5f5f298bc80c2ef28facb41dffae and made it no longer possible to change the client resolution except by pressing Enter or Space after selecting an item.
2011-06-02Arbitrary code cleanupsThorbjørn Lindeijer1-2/+2
Just some stuff that piles up while "looking" at the code, which eventually gets annoying to ignore while staging real changes. * Replaced a few NULL occurrences with 0 * Rely on default parameter for std::vector::resize. * Replaced a few "" with std::string() * Prefer .empty() to == "" * Removed a few comparisons with NULL * Don't check pointers before deleting them * Removed a bunch of redundant semicolons * Made some global variables static (local to their compilation unit) * Prefer prefix ++/-- operators to postfix versions when possible * Corrected location of a comment
2011-05-23Fixed listbox selection issueAngelo Castellani1-1/+14
Clicking below the last item of a listbox would select the last item. Made it do nothing instead.
2010-08-03Move Theme and UserPalette to the resources folderJared Adams1-1/+2
Reviewed-by: Yohann Ferreira
2010-07-28Centralized configuration default values using the VariableData system.Yohann Ferreira1-2/+2
Please note that I didn't turned all the getValue() call into new ones, simply because I have to have config object initiated which is not forcefully the case the branding file. Resolves: Manasource Mantis #170.
2010-03-29Fix ListBox::draw to work more correctlyJared Adams1-4/+4
Reviewed-by: Thorbjørn Lindeijer
2010-03-12Split Palette into Theme and UserPaletteJared Adams1-3/+3
Themes can now control the colors they use. Colors in the Viewport (being names, particles, etc) can still be changed by the user. Also make ProgressBars more easily colored. DyePalette was made more flexible in the process. Also fixes comparing strings of different lengths insensitively. Reviewed-by: Thorbjørn Lindeijer
2010-03-05Rename SkinLoader to ThemeJared Adams1-2/+2
Also merge the guialpha ConfigListener into Theme. Reviewed-by: Thorbjørn Lindeijer
2010-02-22Modify copyright headersFreeyorp1-1/+2
2010-02-20License header update for The Mana ClientThorbjørn Lindeijer1-4/+3
2010-02-08Delete models explicitly rather than relying on booleansThorbjørn Lindeijer1-7/+2
It is more clear in the end. Also fixed deleting of the mode list model.
2010-02-07Cleanup some memory issuesJared Adams1-2/+11
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 )
2010-01-11Cleanup GUI classesJared Adams1-2/+2
Moved remaining widgets into widgets folder, standardized include order, moved TextRenderer out.
2009-09-03Resolved Mantis #847: Login stage Windows won't go less than the default gui ↵Bertram1-2/+11
opacity. Of course, in-game, the wanted opacity still shows up.
2009-06-30Fixed compiler warning about unsigned/signed integer comparisionThorbjørn Lindeijer1-2/+2
2009-05-08Fixed list box selection wrapping to the bottom on dragging upwardsBjørn Lindeijer1-3/+6
Negative values of y were not handled correctly, causing the selection to wrap when the mouse moved out of the listbox at the top while dragging.
2009-05-08Fixed scroll wheel handling in list boxesBjørn Lindeijer1-20/+2
The scroll wheel was changing the list box selection, which is somewhat unexpected. By not handling the event, it will be passed on to the parent ScrollArea and be handled appropriately.
2009-04-20Removed the unused setSelected overrideBjørn Lindeijer1-30/+0
It wasn't actually used because it is no longer virtual in the base Guichan class.
2009-04-20Repaired table and listbox scrolling when using the keyboard.Ira Rice1-11/+23
Signed-off-by: Tametomo <irarice@gmail.com> Signed-off-by: Bjørn Lindeijer <bjorn@lindeijer.nl>
2009-04-07Moved basic widgets into the gui/widgets directoryBjørn Lindeijer1-0/+158
In an attempt to make the GUI code a little more structured, basic widgets are now put in gui/widgets. Many includes were also cleaned up.