summaryrefslogtreecommitdiff
path: root/src/gui/widgets/tabbedarea.cpp
AgeCommit message (Collapse)AuthorFilesLines
2025-04-25GUI: Added support for multiple color palettes to ThemeThorbjørn Lindeijer1-1/+1
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-31GUI: Apply clipping only where necessaryThorbjørn Lindeijer1-30/+19
Clipping has been disabled globally by taking it out of Graphics::pushClipArea. Now its name is a little confusing, but it can't just be changed since it is part of Guichan. Widgets that do need to clip their children use the new Graphics::pushClipRect, which pushes a clipping rectangle without affecting the local coordinates. These are: * ScrollArea * TextField * TabbedArea (scrolling tabs) * MiniMap While it might count as a small optimization, I'm actually disabling clipping because it is not always desired. For example it gets in the way of rendering the complete ResizeGrip in the Jewelry theme because that's a child widget.
2025-02-26Plugged a few more memory leaksThorbjørn Lindeijer1-4/+4
* DebugWindow and SkillDialog were not deleting their tabs nor their tab widgets. * TabbedArea was not deleting its arrow buttons. * Button was deleting its TextPopup on deletion of the last Button instance, which was wrong because it was also being deleted by the WindowContainer. Also removed some misplaced event forwarding to the TextPopup. TabbedArea is tricky because it does not automatically delete added tabs or their widgets. Tab instances are only deleted when they were added by name. Issues found by Valgrind memory analyzer.
2024-06-25Added online player list to Social windowDavid Athay1-4/+7
The online list refreshes every 18 seconds, which matches ManaVerse behavior. It's not ideal, but to improve this would mean diving into TMWA. The client version was bumped to 8 to get a SMSG_ONLINE_LIST reply. Further changes needed related to the client version are tracked by #71. This also changes the TabbedArea to take into account the frame size for its tab widgets, to make sure those frames are not clipped by the TabbedArea widget (as happened in the Social window). The horizontal scroll bar is now disabled in all social tabs, with the vertical one appearing only when necessary. Closes #61
2024-03-12General code cleanupsThorbjørn Lindeijer1-16/+12
* Use default member initializers * Use range-based for loops * Avoid needless pointer references for ShopItem::mDuplicates * Removed type aliases that are only used once or twice * Removed more unused includes * Removed some unused functions * Removed superfluous .c_str() * Rely on default copy and assignment operators for Vector class * Use std::unique_ptr in some places * Removed duplicated mPlayerMoney updating in SellDialog * Removed duplicated Game::handleInput call * Removed unused SDLInput::mMouseInWindow * Removed remnant of manual widget positioning in HelpWindow * Removed superfluous initialization of static pointers
2024-02-13General code cleanupsThorbjørn Lindeijer1-14/+5
* 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-29Apply C++11 fixitsThorbjørn Lindeijer1-6/+5
modernize-loop-convert modernize-deprecated-headers
2024-01-26Apply C++11 fixitsThorbjørn Lindeijer1-9/+9
modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using
2012-02-05Fixed some layout issues with the chat windowThorbjørn Lindeijer1-30/+19
One pixel of the scroll bar wasn't visible since the mWidgetContainer is shifted by one pixel by gcn::TabbedArea::adjustSize, which wasn't being taken into account by our custom mWidgetContainer sizing code. Fixed that by just letting Guichan handle it. Another issue was that the tab scroll arrows were appearing before they were needed, since they took into account their own size when checking whether the tabs had enough space. Finally, a Layout has a default padding of 6 pixels but this is a little much for the chat window. I reduced it to 3 pixels now. Reviewed-by: Erik Schilling
2012-01-26Updated copyrights to 2012Thorbjørn Lindeijer1-1/+1
2011-08-11Added true arrows graphics to tab area buttons.Yohann Ferreira1-2/+6
2011-03-08Added a tab scrolling system in tabarea.Yohann Ferreira1-1/+146
Currently working on the chat window. Resolves: Mana-Mantis #308. Reviewed-by: Thorbjorn.
2010-08-22Fixing segmentation fault when tab gets removedStefan Dombrowski1-17/+3
How to reproduce the bug: Leave a party, while the party tab in the chat window is not selected. Then click with the mouse on the chat window. Signed-off-by: Thorbjørn Lindeijer <thorbjorn@lindeijer.nl>
2010-02-22Modify copyright headersFreeyorp1-1/+2
2010-02-20License header update for The Mana ClientThorbjørn Lindeijer1-4/+3
2010-02-14Make sure the tabbed area gets focus set on it when one of its tabs isTametomo1-0/+6
pressed by the mouse. Signed-off-by: Tametomo <irarice@gmail.com>
2010-02-14Fixed TabbedAreas stealing click focus from their children widgets.Tametomo1-0/+13
Signed-off-by: Tametomo <irarice@gmail.com>
2010-02-08Merge PartyWindow and GuildWindow into SocialWindowJared Adams1-2/+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 )
2010-01-11Cleanup GUI classesJared Adams1-0/+1
Moved remaining widgets into widgets folder, standardized include order, moved TextRenderer out.
2009-08-23Fix some layout issues with TabbedAreasJared Adams1-3/+11
2009-08-13Fix initial sizing issue with TabbedAreasJared Adams1-1/+2
Also remove some commented code from ChatWindow
2009-08-10Remove layout code from ChatWindowJared Adams1-0/+8
2009-08-10Fix TabbedArea and ScrollArea to resize contentsJared Adams1-0/+11
Also remove that code from SkillDialog. I tried to do the same with ChatWindow, but it kept segfaulting. Will try again later.
2009-07-07Use tmw-skills.xml instead of hardcodingJared Adams1-0/+10
2009-04-16Some more cleanupsBjørn Lindeijer1-22/+7
Nothing in particular worth mentioning.
2009-03-30fixed a segfault on client exit if the chatwindow has tabs and the main tab ↵Bernd Wachter1-1/+1
is active
2009-03-30Hilight chat tabs when appropriateJared Adams1-0/+10
2009-03-26First batch of include cleanupBjørn Lindeijer1-2/+2
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-03-06Merge branch 'aethyra/master'Bjørn Lindeijer1-14/+3
Conflicts: src/being.cpp src/being.h src/floor_item.cpp src/floor_item.h src/flooritemmanager.cpp src/gui/inventorywindow.cpp src/gui/inventorywindow.h src/gui/itemcontainer.cpp src/gui/popupmenu.cpp src/net/beinghandler.cpp src/npc.cpp
2009-03-05Made some optimizations based on some profiling done by Octalot, as wellIra Rice1-14/+3
as some other optimizations that I could see that cut down on some unneeded redraws, which in turn improved frame rates slightly. Signed-off-by: Ira Rice <irarice@gmail.com>
2009-02-15Removed unnecessary parenthesis at constructorsBjørn Lindeijer1-1/+1
When not passing any parameters to constructors, there is no reason for using parenthesis.
2009-02-10Removed many pointless comparisons with NULLBjørn Lindeijer1-1/+1
Sometimes it's nice for clarity, but most of the time this is just clutter. C++ != Java. :)
2009-02-10Fixed header files, as well as removed the unused buddy list class (notIra Rice1-2/+3
useful since buddy lists are tracked through the player relation interface instead) Signed-off-by: Ira Rice <irarice@gmail.com>
2009-02-11Removed many pointless comparisons with NULLBjørn Lindeijer1-1/+1
Sometimes it's nice for clarity, but most of the time this is just clutter. C++ != Java. :)
2009-01-23Removed unnecessary references to The Mana World in code headersBjørn Lindeijer1-4/+4
This dates back to the old days of TMW, but the usage instructions of GPLv2 don't mention this being necessary. Since it doesn't add anything, avoid the branding in these sections.
2009-01-23Removed unnecessary references to The Mana World in code headersBjørn Lindeijer1-4/+4
This dates back to the old days of TMW, but the usage instructions of GPLv2 don't mention this being necessary. Since it doesn't add anything, avoid the branding in these sections.
2009-01-15Merged Tab and TabbedArea from mainlineBjørn Lindeijer1-0/+160
Changes mostly done by David Athay. Currently these widgets are only used in the setup window, where they replace the previously used TabbedContainer.
2009-01-13Merged Tab and TabbedArea from mainlineBjørn Lindeijer1-0/+160
Changes mostly done by David Athay. Currently these widgets are only used in the setup window, where they replace the previously used TabbedContainer.