Changeset View
Changeset View
Standalone View
Standalone View
source/gui/IGUIButtonBehavior.cpp
Show All 11 Lines | |||||
* GNU General Public License for more details. | * GNU General Public License for more details. | ||||
* | * | ||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with 0 A.D. If not, see <http://www.gnu.org/licenses/>. | * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>. | ||||
*/ | */ | ||||
#include "precompiled.h" | #include "precompiled.h" | ||||
#include "IGUIButtonBehavior.h" | |||||
#include "gui/CGUI.h" | #include "gui/CGUI.h" | ||||
#include "gui/CGUISprite.h" | #include "gui/CGUISprite.h" | ||||
#include "gui/IGUIButtonBehavior.h" | |||||
IGUIButtonBehavior::IGUIButtonBehavior(CGUI& pGUI) | IGUIButtonBehavior::IGUIButtonBehavior(CGUI& pGUI) | ||||
: IGUIObject(pGUI), m_Pressed(false) | : IGUIObject(pGUI), | ||||
{ | m_Pressed(false), | ||||
m_PressedRight(false) | |||||
elexis: uninitialized member from rP13040 | |||||
{ | |||||
AddSetting<CStrW>("sound_disabled"); | |||||
AddSetting<CStrW>("sound_enter"); | |||||
AddSetting<CStrW>("sound_leave"); | |||||
AddSetting<CStrW>("sound_pressed"); | |||||
AddSetting<CStrW>("sound_released"); | |||||
} | } | ||||
IGUIButtonBehavior::~IGUIButtonBehavior() | IGUIButtonBehavior::~IGUIButtonBehavior() | ||||
{ | { | ||||
} | } | ||||
void IGUIButtonBehavior::HandleMessage(SGUIMessage& Message) | void IGUIButtonBehavior::HandleMessage(SGUIMessage& Message) | ||||
{ | { | ||||
const bool enabled = GetSetting<bool>("enabled"); | const bool enabled = GetSetting<bool>("enabled"); | ||||
CStrW soundPath; | |||||
// TODO Gee: easier access functions | // TODO Gee: easier access functions | ||||
switch (Message.type) | switch (Message.type) | ||||
{ | { | ||||
case GUIM_MOUSE_ENTER: | case GUIM_MOUSE_ENTER: | ||||
if (enabled) | if (enabled) | ||||
PlaySound("sound_enter"); | PlaySound("sound_enter"); | ||||
break; | break; | ||||
▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | case GUIM_MOUSE_RELEASE_LEFT: | ||||
} | } | ||||
break; | break; | ||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
const CGUIColor& IGUIButtonBehavior::ChooseColor() | |||||
{ | |||||
// Yes, the object must possess these settings. They are standard | |||||
const CGUIColor& color = GetSetting<CGUIColor>("textcolor"); | |||||
if (!GetSetting<bool>("enabled")) | |||||
return GetSetting<CGUIColor>("textcolor_disabled") || color; | |||||
if (m_MouseHovering) | |||||
{ | |||||
if (m_Pressed) | |||||
return GetSetting<CGUIColor>("textcolor_pressed") || color; | |||||
else | |||||
return GetSetting<CGUIColor>("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) | 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<bool>("enabled")) | if (!GetSetting<bool>("enabled")) | ||||
m_pGUI.DrawSprite(sprite_disabled || sprite, cell_id, z, rect); | m_pGUI.DrawSprite(sprite_disabled || sprite, cell_id, z, rect); | ||||
else if (m_MouseHovering) | else if (m_MouseHovering) | ||||
{ | { | ||||
if (m_Pressed) | if (m_Pressed) | ||||
m_pGUI.DrawSprite(sprite_pressed || sprite, cell_id, z, rect); | m_pGUI.DrawSprite(sprite_pressed || sprite, cell_id, z, rect); | ||||
else | else | ||||
m_pGUI.DrawSprite(sprite_over || sprite, cell_id, z, rect); | m_pGUI.DrawSprite(sprite_over || sprite, cell_id, z, rect); | ||||
} | } | ||||
else | else | ||||
m_pGUI.DrawSprite(sprite, cell_id, z, rect); | m_pGUI.DrawSprite(sprite, cell_id, z, rect); | ||||
} | } |
Wildfire Games · Phabricator
uninitialized member from rP13040