Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/gui/ObjectTypes/CButton.cpp
Show All 21 Lines | |||||
#include "gui/CGUI.h" | #include "gui/CGUI.h" | ||||
#include "gui/CGUIText.h" | #include "gui/CGUIText.h" | ||||
#include "gui/SettingTypes/CGUIColor.h" | #include "gui/SettingTypes/CGUIColor.h" | ||||
CButton::CButton(CGUI& pGUI) | CButton::CButton(CGUI& pGUI) | ||||
: IGUIObject(pGUI), | : IGUIObject(pGUI), | ||||
IGUIButtonBehavior(*static_cast<IGUIObject*>(this)), | IGUIButtonBehavior(*static_cast<IGUIObject*>(this)), | ||||
IGUITextOwner(*static_cast<IGUIObject*>(this)), | IGUITextOwner(*static_cast<IGUIObject*>(this)), | ||||
m_BufferZone(), | m_BufferZone(this, "buffer_zone"), | ||||
m_Caption(), | m_Caption(this, "caption"), | ||||
m_Font(), | m_Font(this, "font"), | ||||
m_Sprite(), | m_Sprite(this, "sprite"), | ||||
m_SpriteOver(), | m_SpriteOver(this, "sprite_over"), | ||||
m_SpritePressed(), | m_SpritePressed(this, "sprite_pressed"), | ||||
m_SpriteDisabled(), | m_SpriteDisabled(this, "sprite_disabled"), | ||||
m_TextAlign(), | m_TextColor(this, "textcolor"), | ||||
m_TextVAlign(), | m_TextColorOver(this, "textcolor_over"), | ||||
m_TextColor(), | m_TextColorPressed(this, "textcolor_pressed"), | ||||
m_TextColorOver(), | m_TextColorDisabled(this, "textcolor_disabled") | ||||
m_TextColorPressed(), | { | ||||
m_TextColorDisabled() | |||||
{ | |||||
RegisterSetting("buffer_zone", m_BufferZone); | |||||
RegisterSetting("caption", m_Caption); | |||||
RegisterSetting("font", m_Font); | |||||
RegisterSetting("sprite", m_Sprite); | |||||
RegisterSetting("sprite_over", m_SpriteOver); | |||||
RegisterSetting("sprite_pressed", m_SpritePressed); | |||||
RegisterSetting("sprite_disabled", m_SpriteDisabled); | |||||
RegisterSetting("text_align", m_TextAlign); | |||||
RegisterSetting("text_valign", m_TextVAlign); | |||||
RegisterSetting("textcolor", m_TextColor); | |||||
RegisterSetting("textcolor_over", m_TextColorOver); | |||||
RegisterSetting("textcolor_pressed", m_TextColorPressed); | |||||
RegisterSetting("textcolor_disabled", m_TextColorDisabled); | |||||
AddText(); | AddText(); | ||||
} | } | ||||
CButton::~CButton() | CButton::~CButton() | ||||
{ | { | ||||
} | } | ||||
void CButton::SetupText() | void CButton::SetupText() | ||||
{ | { | ||||
ENSURE(m_GeneratedTexts.size() == 1); | ENSURE(m_GeneratedTexts.size() == 1); | ||||
m_GeneratedTexts[0] = CGUIText(m_pGUI, m_Caption, m_Font, m_CachedActualSize.GetWidth(), m_BufferZone, this); | m_GeneratedTexts[0] = CGUIText(m_pGUI, m_Caption, m_Font, m_CachedActualSize.GetWidth(), m_BufferZone, m_TextAlign, this); | ||||
CalculateTextPosition(m_CachedActualSize, m_TextPos, m_GeneratedTexts[0]); | CalculateTextPosition(m_CachedActualSize, m_TextPos, m_GeneratedTexts[0]); | ||||
} | } | ||||
void CButton::ResetStates() | void CButton::ResetStates() | ||||
{ | { | ||||
IGUIObject::ResetStates(); | IGUIObject::ResetStates(); | ||||
IGUIButtonBehavior::ResetStates(); | IGUIButtonBehavior::ResetStates(); | ||||
} | } | ||||
Show All 27 Lines | m_pGUI.DrawSprite( | ||||
m_CachedActualSize); | m_CachedActualSize); | ||||
DrawText(0, ChooseColor(), m_TextPos, bz + 0.1f); | DrawText(0, ChooseColor(), m_TextPos, bz + 0.1f); | ||||
} | } | ||||
const CGUIColor& CButton::ChooseColor() | const CGUIColor& CButton::ChooseColor() | ||||
{ | { | ||||
if (!m_Enabled) | if (!m_Enabled) | ||||
return m_TextColorDisabled ? m_TextColorDisabled : m_TextColor; | return *m_TextColorDisabled ? m_TextColorDisabled : m_TextColor; | ||||
if (!m_MouseHovering) | if (!m_MouseHovering) | ||||
return m_TextColor; | return m_TextColor; | ||||
if (m_Pressed) | if (m_Pressed) | ||||
return m_TextColorPressed ? m_TextColorPressed : m_TextColor; | return *m_TextColorPressed ? m_TextColorPressed : m_TextColor; | ||||
return m_TextColorOver ? m_TextColorOver : m_TextColor; | return *m_TextColorOver ? m_TextColorOver : m_TextColor; | ||||
} | } |
Wildfire Games · Phabricator