[Balder-cvs] SF.net SVN: balder: [114] src/menu
Status: Beta
Brought to you by:
holomorph
From: <hol...@us...> - 2008-06-07 04:15:39
|
Revision: 114 http://balder.svn.sourceforge.net/balder/?rev=114&view=rev Author: holomorph Date: 2008-06-06 21:15:47 -0700 (Fri, 06 Jun 2008) Log Message: ----------- scroll bar skinned (at least "good enough") Modified Paths: -------------- bin/config.xml include/menu/widgets/skinneddropdown.h src/menu/gamesetup.cpp src/menu/playersetup.cpp src/menu/widgets/skinneddropdown.cpp Modified: bin/config.xml =================================================================== --- bin/config.xml 2008-06-07 01:35:05 UTC (rev 113) +++ bin/config.xml 2008-06-07 04:15:47 UTC (rev 114) @@ -15,7 +15,7 @@ <fullscreen value="0" /> </Video> <Sound> - <fxvolume value="83.671875" /> + <fxvolume value="86.328125" /> <musicvolume value="86.328125" /> <music value="1" /> <sound value="1" /> Modified: include/menu/widgets/skinneddropdown.h =================================================================== --- include/menu/widgets/skinneddropdown.h 2008-06-07 01:35:05 UTC (rev 113) +++ include/menu/widgets/skinneddropdown.h 2008-06-07 04:15:47 UTC (rev 114) @@ -48,6 +48,19 @@ virtual void draw(gcn::Graphics* graphics); virtual void drawButton(gcn::Graphics* graphics); }; + + /** + * a better looking scroll bar + */ + class SkinnedScrollArea: public gcn::ScrollArea + { + public: + SkinnedScrollArea(): gcn::ScrollArea() {} + // Inherited from gcn::Widget + virtual void draw(gcn::Graphics* graphics); + virtual void drawVBar(gcn::Graphics* graphics); + virtual void drawVMarker(gcn::Graphics* graphics); + }; } #endif // SKINNEDDROPDOWN_H Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2008-06-07 01:35:05 UTC (rev 113) +++ src/menu/gamesetup.cpp 2008-06-07 04:15:47 UTC (rev 114) @@ -37,7 +37,7 @@ mapnameLabel = new gcn::Label("Select a Map: "); maplistModel = new MapListModel(); - mapScrollArea = new gcn::ScrollArea(); + mapScrollArea = new SkinnedScrollArea(); mapListBox = new SkinnedListBox(); mapListBox->setWidth(400); mapListBox->setActionEventId("selectNewMap"); Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2008-06-07 01:35:05 UTC (rev 113) +++ src/menu/playersetup.cpp 2008-06-07 04:15:47 UTC (rev 114) @@ -126,7 +126,7 @@ // AI Script list box. aiLabel = new gcn::Label("AI Script: "); ailistModel = new AIListModel(); - aiScrollArea = new gcn::ScrollArea(); + aiScrollArea = new SkinnedScrollArea(); aiListBox = new SkinnedListBox(); aiListBox->setWidth(redIcon->getWidth() - 12); aiListBox->setActionEventId("changeAIScript"); Modified: src/menu/widgets/skinneddropdown.cpp =================================================================== --- src/menu/widgets/skinneddropdown.cpp 2008-06-07 01:35:05 UTC (rev 113) +++ src/menu/widgets/skinneddropdown.cpp 2008-06-07 04:15:47 UTC (rev 114) @@ -241,3 +241,66 @@ } } +void SkinnedScrollArea::draw(Graphics *graphics) +{ + drawBackground(graphics); + + if (mVBarVisible) + { +// drawUpButton(graphics); +// drawDownButton(graphics); + drawVBar(graphics); + drawVMarker(graphics); + + } + + drawChildren(graphics); +} + +void SkinnedScrollArea::drawVBar(Graphics* graphics) +{ + Rectangle dim(getWidth() - mScrollbarWidth, 0, mScrollbarWidth, getHeight()); + + + graphics->pushClipArea(dim); + + int alpha = MenuColors::bgAlpha; + Color trackColor = MenuColors::UNFOCUSED; + trackColor.a = alpha; + Color shadowColor = MenuColors::SHADOW; + shadowColor.a = alpha; + + graphics->setColor(trackColor); + graphics->fillRectangle(Rectangle(0, 0, dim.width, dim.height)); + + graphics->setColor(shadowColor); + graphics->drawLine(0, 0, 0, dim.height); + + graphics->popClipArea(); +} + +void SkinnedScrollArea::drawVMarker(Graphics* graphics) +{ + Rectangle dim = getVerticalMarkerDimension(); + graphics->pushClipArea(dim); + + int alpha = MenuColors::bgAlpha; + Color faceColor = MenuColors::fontColor; + Color highlightColor = MenuColors::HIGHLIGHT; + highlightColor.a = alpha; + Color shadowColor = MenuColors::SHADOW; + shadowColor.a = alpha; + + graphics->setColor(faceColor); + graphics->fillRectangle(Rectangle(1, 1, dim.width - 1, dim.height - 1)); + + graphics->setColor(highlightColor); + graphics->drawLine(0, 0, dim.width - 1, 0); + graphics->drawLine(0, 1, 0, dim.height - 1); + + graphics->setColor(shadowColor); + graphics->drawLine(1, dim.height - 1, dim.width - 1, dim.height - 1); + graphics->drawLine(dim.width - 1, 0, dim.width - 1, dim.height - 1); + + graphics->popClipArea(); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |