[Balder-cvs] SF.net SVN: balder: [112] src/menu
Status: Beta
Brought to you by:
holomorph
From: <hol...@us...> - 2008-06-07 01:16:39
|
Revision: 112 http://balder.svn.sourceforge.net/balder/?rev=112&view=rev Author: holomorph Date: 2008-06-06 18:16:48 -0700 (Fri, 06 Jun 2008) Log Message: ----------- workaround guichan dropdown bug Modified Paths: -------------- Balder2D-linux.cbp bin/config.xml include/menu/widgets/maplistmodel.h include/menu/widgets/skinneddropdown.h src/menu/gamesetup.cpp src/menu/widgets/maplistmodel.cpp src/menu/widgets/skinneddropdown.cpp Modified: Balder2D-linux.cbp =================================================================== --- Balder2D-linux.cbp 2008-05-26 23:41:07 UTC (rev 111) +++ Balder2D-linux.cbp 2008-06-07 01:16:48 UTC (rev 112) @@ -68,6 +68,7 @@ <Unit filename="include/menu/widgets/sampleprobe.h" /> <Unit filename="include/menu/widgets/skinnedbutton.h" /> <Unit filename="include/menu/widgets/skinnedcheckbox.h" /> + <Unit filename="include/menu/widgets/skinneddropdown.h" /> <Unit filename="include/menu/widgets/skinnedslider.h" /> <Unit filename="include/player.h" /> <Unit filename="include/powerup.h" /> @@ -110,6 +111,7 @@ <Unit filename="src/menu/widgets/sampleprobe.cpp" /> <Unit filename="src/menu/widgets/skinnedbutton.cpp" /> <Unit filename="src/menu/widgets/skinnedcheckbox.cpp" /> + <Unit filename="src/menu/widgets/skinneddropdown.cpp" /> <Unit filename="src/menu/widgets/skinnedslider.cpp" /> <Unit filename="src/player.cpp" /> <Unit filename="src/powerup.cpp" /> Modified: bin/config.xml =================================================================== --- bin/config.xml 2008-05-26 23:41:07 UTC (rev 111) +++ bin/config.xml 2008-06-07 01:16:48 UTC (rev 112) @@ -2,7 +2,7 @@ <!-- Balder2d Configuration data --> <Balder> <!-- The following is meant to be modified by the user --> - <Map name="corners" /> + <Map name="ellipse" /> <NumberOfPlayers value="4" /> <GameSetup> <!-- negative values indicate disabled modes --> Modified: include/menu/widgets/maplistmodel.h =================================================================== --- include/menu/widgets/maplistmodel.h 2008-05-26 23:41:07 UTC (rev 111) +++ include/menu/widgets/maplistmodel.h 2008-06-07 01:16:48 UTC (rev 112) @@ -32,12 +32,12 @@ MapListModel(); virtual ~MapListModel(); virtual int getNumberOfElements () {return numMaps;} - virtual std::string getElementAt (int i) {return mapnames[i];} + virtual std::string getElementAt (int i); int FindMapIndex(std::string mapname); private: void FindMaps(); int numMaps; - std::vector<std::string> mapnames; + std::vector<std::string> mapnames; }; } #endif // MAPLISTMODEL_H Modified: include/menu/widgets/skinneddropdown.h =================================================================== --- include/menu/widgets/skinneddropdown.h 2008-05-26 23:41:07 UTC (rev 111) +++ include/menu/widgets/skinneddropdown.h 2008-06-07 01:16:48 UTC (rev 112) @@ -44,6 +44,7 @@ SkinnedDropDown(gcn::ListModel *listModel, gcn::ScrollArea *scrollArea, gcn::ListBox *listBox): gcn::DropDown(listModel, scrollArea, listBox) {} // Inherited from gcn::Widget + virtual void keyPressed(gcn::KeyEvent& keyEvent); virtual void draw(gcn::Graphics* graphics); virtual void drawButton(gcn::Graphics* graphics); }; Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2008-05-26 23:41:07 UTC (rev 111) +++ src/menu/gamesetup.cpp 2008-06-07 01:16:48 UTC (rev 112) @@ -22,6 +22,7 @@ #include "configmanager.h" #include "menu/widgets/samplemap.h" #include "menu/widgets/maplistmodel.h" +#include "menu/widgets/skinneddropdown.h" using namespace Balder; @@ -37,11 +38,11 @@ mapnameLabel = new gcn::Label("Select a Map: "); maplistModel = new MapListModel(); mapScrollArea = new gcn::ScrollArea(); - mapListBox = new gcn::ListBox(); + mapListBox = new SkinnedListBox(); mapListBox->setWidth(400); mapListBox->setActionEventId("selectNewMap"); mapListBox->addActionListener(this); - mapDropDown = new gcn::DropDown(maplistModel, mapScrollArea, mapListBox); + mapDropDown = new SkinnedDropDown(maplistModel, mapScrollArea, mapListBox); mapDropDown->setWidth(400); mapDropDown->setSelected(maplistModel->FindMapIndex(ConfigManager::GetMap())); Modified: src/menu/widgets/maplistmodel.cpp =================================================================== --- src/menu/widgets/maplistmodel.cpp 2008-05-26 23:41:07 UTC (rev 111) +++ src/menu/widgets/maplistmodel.cpp 2008-06-07 01:16:48 UTC (rev 112) @@ -68,6 +68,15 @@ PHYSFS_freeList(files); } +std::string Balder::MapListModel::getElementAt (int i) +{ + if (i > numMaps - 1) + { + Log::output("tried to get map at index higher than number of maps"); + return "--Map Not Found--"; + } + return mapnames[i]; +} /*! \fn Balder::MapListModel::FindMapIndex(std::string mapname) Modified: src/menu/widgets/skinneddropdown.cpp =================================================================== --- src/menu/widgets/skinneddropdown.cpp 2008-05-26 23:41:07 UTC (rev 111) +++ src/menu/widgets/skinneddropdown.cpp 2008-06-07 01:16:48 UTC (rev 112) @@ -101,6 +101,12 @@ } } +void SkinnedDropDown::keyPressed(KeyEvent& keyEvent) +{ + // work around guichan bug where when the dropdown is open arrow keys get counted twice (skips elements) + if (keyEvent.isConsumed()) return; + gcn::DropDown::keyPressed(keyEvent); +} void SkinnedDropDown::draw(Graphics* graphics) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |