Index: source/gui/CButton.h =================================================================== --- source/gui/CButton.h +++ source/gui/CButton.h @@ -53,6 +53,11 @@ void SetupText(); /** + * Picks the text color depending on current object settings. + */ + const CGUIColor& ChooseColor(); + + /** * Placement of text. */ CPos m_TextPos; Index: source/gui/CButton.cpp =================================================================== --- source/gui/CButton.cpp +++ source/gui/CButton.cpp @@ -29,11 +29,6 @@ AddSetting("caption"); AddSetting("cell_id"); AddSetting("font"); - AddSetting("sound_disabled"); - AddSetting("sound_enter"); - AddSetting("sound_leave"); - AddSetting("sound_pressed"); - AddSetting("sound_released"); AddSetting("sprite"); AddSetting("sprite_over"); AddSetting("sprite_pressed"); @@ -97,3 +92,21 @@ DrawText(0, ChooseColor(), m_TextPos, bz + 0.1f); } + +const CGUIColor& CButton::ChooseColor() +{ + const CGUIColor& color = GetSetting("textcolor"); + + if (!GetSetting("enabled")) + return GetSetting("textcolor_disabled") || color; + + if (m_MouseHovering) + { + if (m_Pressed) + return GetSetting("textcolor_pressed") || color; + else + return GetSetting("textcolor_over") || color; + } + + return color; +} Index: source/gui/CCheckBox.cpp =================================================================== --- source/gui/CCheckBox.cpp +++ source/gui/CCheckBox.cpp @@ -24,11 +24,6 @@ { AddSetting("cell_id"); AddSetting("checked"); - AddSetting("sound_disabled"); - AddSetting("sound_enter"); - AddSetting("sound_leave"); - AddSetting("sound_pressed"); - AddSetting("sound_released"); AddSetting("sprite"); AddSetting("sprite_over"); AddSetting("sprite_pressed"); Index: source/gui/CDropDown.h =================================================================== --- source/gui/CDropDown.h +++ source/gui/CDropDown.h @@ -51,8 +51,6 @@ CDropDown(CGUI& pGUI); virtual ~CDropDown(); -// virtual void ResetStates() { IGUIButtonBehavior::ResetStates(); } - /** * @see IGUIObject#HandleMessage() */ Index: source/gui/IGUIButtonBehavior.h =================================================================== --- source/gui/IGUIButtonBehavior.h +++ source/gui/IGUIButtonBehavior.h @@ -65,15 +65,6 @@ */ void DrawButton(const CRect& rect, const float& z, CGUISpriteInstance& sprite, CGUISpriteInstance& sprite_over, CGUISpriteInstance& sprite_pressed, CGUISpriteInstance& sprite_disabled, int cell_id); - /** - * Choosing which color of the following according to object enabled/hovered/pressed status: - * textcolor_disabled -- disabled - * textcolor_pressed -- pressed - * textcolor_over -- hovered - */ - const CGUIColor& ChooseColor(); - - protected: /** * @see IGUIObject#ResetStates() @@ -93,8 +84,8 @@ * area, as long as you release it within the button area... Anyway * this lets us know we are done with step one (clicking). */ - bool m_Pressed; - bool m_PressedRight; + bool m_Pressed; + bool m_PressedRight; }; #endif // INCLUDED_IGUIBUTTONBEHAVIOR Index: source/gui/IGUIButtonBehavior.cpp =================================================================== --- source/gui/IGUIButtonBehavior.cpp +++ source/gui/IGUIButtonBehavior.cpp @@ -17,13 +17,21 @@ #include "precompiled.h" +#include "IGUIButtonBehavior.h" + #include "gui/CGUI.h" #include "gui/CGUISprite.h" -#include "gui/IGUIButtonBehavior.h" IGUIButtonBehavior::IGUIButtonBehavior(CGUI& pGUI) - : IGUIObject(pGUI), m_Pressed(false) + : IGUIObject(pGUI), + m_Pressed(false), + m_PressedRight(false) { + AddSetting("sound_disabled"); + AddSetting("sound_enter"); + AddSetting("sound_leave"); + AddSetting("sound_pressed"); + AddSetting("sound_released"); } IGUIButtonBehavior::~IGUIButtonBehavior() @@ -34,7 +42,6 @@ { const bool enabled = GetSetting("enabled"); - CStrW soundPath; // TODO Gee: easier access functions switch (Message.type) { @@ -118,25 +125,6 @@ } } -const CGUIColor& IGUIButtonBehavior::ChooseColor() -{ - // Yes, the object must possess these settings. They are standard - const CGUIColor& color = GetSetting("textcolor"); - - if (!GetSetting("enabled")) - return GetSetting("textcolor_disabled") || color; - - if (m_MouseHovering) - { - if (m_Pressed) - return GetSetting("textcolor_pressed") || color; - else - return GetSetting("textcolor_over") || color; - } - - return color; -} - void IGUIButtonBehavior::DrawButton(const CRect& rect, const float& z, CGUISpriteInstance& sprite, CGUISpriteInstance& sprite_over, CGUISpriteInstance& sprite_pressed, CGUISpriteInstance& sprite_disabled, int cell_id) { if (!GetSetting("enabled"))