From: <au...@us...> - 2009-04-16 00:05:28
|
Revision: 3387 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3387&view=rev Author: auria Date: 2009-04-16 00:05:16 +0000 (Thu, 16 Apr 2009) Log Message: ----------- Fixed clicking spinner arrows Modified Paths: -------------- main/branches/irrlicht/data/tracks/secretgarden/garden.ogg main/branches/irrlicht/src/gui/skin.cpp main/branches/irrlicht/src/gui/skin.hpp Modified: main/branches/irrlicht/data/tracks/secretgarden/garden.ogg =================================================================== (Binary files differ) Modified: main/branches/irrlicht/src/gui/skin.cpp =================================================================== --- main/branches/irrlicht/src/gui/skin.cpp 2009-04-12 20:19:50 UTC (rev 3386) +++ main/branches/irrlicht/src/gui/skin.cpp 2009-04-16 00:05:16 UTC (rev 3387) @@ -391,7 +391,7 @@ } -void Skin::drawSpinnerBody(const core::rect< s32 > &rect, const Widget* widget, const bool pressed, const bool focused) +void Skin::drawSpinnerBody(const core::rect< s32 > &rect, const Widget* widget, const bool pressed, bool focused) { // FIXME - move these numbers to a config file const int left_border = 110; @@ -399,6 +399,34 @@ const int border_above = 0; const int border_below = 36; + if(!focused) + { + IGUIElement* focused_widget = GUIEngine::getGUIEnv()->getFocus(); + + //{ + //Widget* widget = GUIEngine::getCurrentScreen()->getWidget(focused_widget->getID()); + //if(focused_widget == NULL) std::cout << "no focus\n"; + //else if(widget != NULL) + //{ + // std::cout << "focused : " << widget->m_properties[PROP_ID].c_str() << " (id " << focused_widget->getID() << ")" << std::endl; + //} + //} + + //Widget* stupid_stl = (Widget*)widget; + //std::cout << "widget name : " << (stupid_stl->m_properties[PROP_ID].c_str()) << std::endl; + + if(focused_widget != NULL && widget->m_children.size()>2) + { + //std::cout << "checking against " << widget->m_children[0].id << " and " << widget->m_children[2].id << std::endl; + if(widget->m_children[0].id == focused_widget->getID() || + widget->m_children[2].id == focused_widget->getID()) + { + //std::cout << "focused = true;\n"; + focused = true; + } + } + } + drawBoxFromStretchableTexture(rect, (focused || pressed ? m_tex_fspinner : m_tex_spinner), left_border, right_border, border_above, border_below, 0); @@ -479,7 +507,7 @@ { drawRibbon(rect, widget, pressed, focused); } - else if(widget->m_type == WTYPE_SPINNER) + else if(type == WTYPE_SPINNER) { drawSpinnerBody(rect, widget, pressed, focused); } Modified: main/branches/irrlicht/src/gui/skin.hpp =================================================================== --- main/branches/irrlicht/src/gui/skin.hpp 2009-04-12 20:19:50 UTC (rev 3386) +++ main/branches/irrlicht/src/gui/skin.hpp 2009-04-16 00:05:16 UTC (rev 3387) @@ -53,7 +53,7 @@ void drawRibbon(const core::rect< s32 > &rect, const Widget* widget, const bool pressed, bool focused); void drawRibbonChild(const core::rect< s32 > &rect, const Widget* widget, const bool pressed, bool focused); void drawSpinnerChild(const core::rect< s32 > &rect, Widget* widget, const bool pressed, bool focused); - void drawSpinnerBody(const core::rect< s32 > &rect, const Widget* widget, const bool pressed, const bool focused); + void drawSpinnerBody(const core::rect< s32 > &rect, const Widget* widget, const bool pressed, bool focused); // irrlicht's callbacks virtual void draw2DRectangle (IGUIElement *element, const video::SColor &color, const core::rect< s32 > &pos, const core::rect< s32 > *clip); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |