Changeset View
Changeset View
Standalone View
Standalone View
source/gui/ObjectBases/IGUIButtonBehavior.cpp
Show All 19 Lines | |||||
#include "IGUIButtonBehavior.h" | #include "IGUIButtonBehavior.h" | ||||
#include "gui/CGUISprite.h" | #include "gui/CGUISprite.h" | ||||
IGUIButtonBehavior::IGUIButtonBehavior(IGUIObject& pObject) | IGUIButtonBehavior::IGUIButtonBehavior(IGUIObject& pObject) | ||||
: m_pObject(pObject), | : m_pObject(pObject), | ||||
m_Pressed(), | m_Pressed(), | ||||
m_PressedRight(), | m_PressedRight(), | ||||
m_PressedMiddle(), | |||||
m_SoundDisabled(), | m_SoundDisabled(), | ||||
m_SoundEnter(), | m_SoundEnter(), | ||||
m_SoundLeave(), | m_SoundLeave(), | ||||
m_SoundPressed(), | m_SoundPressed(), | ||||
m_SoundReleased() | m_SoundReleased() | ||||
{ | { | ||||
m_pObject.RegisterSetting("sound_disabled", m_SoundDisabled); | m_pObject.RegisterSetting("sound_disabled", m_SoundDisabled); | ||||
m_pObject.RegisterSetting("sound_enter", m_SoundEnter); | m_pObject.RegisterSetting("sound_enter", m_SoundEnter); | ||||
m_pObject.RegisterSetting("sound_leave", m_SoundLeave); | m_pObject.RegisterSetting("sound_leave", m_SoundLeave); | ||||
m_pObject.RegisterSetting("sound_pressed", m_SoundPressed); | m_pObject.RegisterSetting("sound_pressed", m_SoundPressed); | ||||
m_pObject.RegisterSetting("sound_released", m_SoundReleased); | m_pObject.RegisterSetting("sound_released", m_SoundReleased); | ||||
} | } | ||||
IGUIButtonBehavior::~IGUIButtonBehavior() | IGUIButtonBehavior::~IGUIButtonBehavior() | ||||
{ | { | ||||
} | } | ||||
void IGUIButtonBehavior::ResetStates() | void IGUIButtonBehavior::ResetStates() | ||||
{ | { | ||||
m_Pressed = false; | m_Pressed = false; | ||||
m_PressedRight = false; | m_PressedRight = false; | ||||
m_PressedMiddle = false; | |||||
} | } | ||||
void IGUIButtonBehavior::HandleMessage(SGUIMessage& Message) | void IGUIButtonBehavior::HandleMessage(SGUIMessage& Message) | ||||
{ | { | ||||
// TODO Gee: easier access functions | // TODO Gee: easier access functions | ||||
switch (Message.type) | switch (Message.type) | ||||
{ | { | ||||
case GUIM_MOUSE_ENTER: | case GUIM_MOUSE_ENTER: | ||||
▲ Show 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | case GUIM_MOUSE_RELEASE_LEFT: | ||||
if (m_Pressed) | if (m_Pressed) | ||||
{ | { | ||||
m_Pressed = false; | m_Pressed = false; | ||||
m_pObject.PlaySound(m_SoundReleased); | m_pObject.PlaySound(m_SoundReleased); | ||||
} | } | ||||
break; | break; | ||||
case GUIM_MOUSE_PRESS_MIDDLE: | |||||
if (!m_pObject.IsEnabled()) | |||||
{ | |||||
m_pObject.PlaySound(m_SoundDisabled); | |||||
break; | |||||
} | |||||
m_pObject.PlaySound(m_SoundPressed); | |||||
m_pObject.SendEvent(GUIM_PRESSED_MOUSE_MIDDLE, "pressmiddle"); | |||||
m_PressedMiddle = true; | |||||
break; | |||||
case GUIM_MOUSE_RELEASE_MIDDLE: | |||||
if (!m_pObject.IsEnabled()) | |||||
break; | |||||
if (m_PressedMiddle) | |||||
{ | |||||
m_PressedMiddle = false; | |||||
m_pObject.PlaySound(m_SoundReleased); | |||||
} | |||||
break; | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
const CGUISpriteInstance& IGUIButtonBehavior::GetButtonSprite(const CGUISpriteInstance& sprite, const CGUISpriteInstance& sprite_over, const CGUISpriteInstance& sprite_pressed, const CGUISpriteInstance& sprite_disabled) const | const CGUISpriteInstance& IGUIButtonBehavior::GetButtonSprite(const CGUISpriteInstance& sprite, const CGUISpriteInstance& sprite_over, const CGUISpriteInstance& sprite_pressed, const CGUISpriteInstance& sprite_disabled) const | ||||
{ | { | ||||
if (!m_pObject.IsEnabled()) | if (!m_pObject.IsEnabled()) | ||||
Show All 10 Lines |
Wildfire Games · Phabricator