Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/gui/ObjectTypes/CButton.cpp
Show All 15 Lines | |||||
*/ | */ | ||||
#include "precompiled.h" | #include "precompiled.h" | ||||
#include "CButton.h" | #include "CButton.h" | ||||
#include "gui/CGUI.h" | #include "gui/CGUI.h" | ||||
#include "gui/CGUIText.h" | #include "gui/CGUIText.h" | ||||
#include "gui/Scripting/JSInterface_GUIProxy.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(), | ||||
m_Caption(), | m_Caption(), | ||||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
void CButton::UpdateCachedSize() | void CButton::UpdateCachedSize() | ||||
{ | { | ||||
IGUIObject::UpdateCachedSize(); | IGUIObject::UpdateCachedSize(); | ||||
IGUITextOwner::UpdateCachedSize(); | IGUITextOwner::UpdateCachedSize(); | ||||
} | } | ||||
CSize2D CButton::GetTextSize() | |||||
{ | |||||
UpdateText(); | |||||
return m_GeneratedTexts[0].GetSize(); | |||||
} | |||||
void CButton::HandleMessage(SGUIMessage& Message) | void CButton::HandleMessage(SGUIMessage& Message) | ||||
{ | { | ||||
IGUIObject::HandleMessage(Message); | IGUIObject::HandleMessage(Message); | ||||
IGUIButtonBehavior::HandleMessage(Message); | IGUIButtonBehavior::HandleMessage(Message); | ||||
IGUITextOwner::HandleMessage(Message); | IGUITextOwner::HandleMessage(Message); | ||||
} | } | ||||
void CButton::Draw() | void CButton::Draw() | ||||
Show All 16 Lines | const CGUIColor& CButton::ChooseColor() | ||||
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; | ||||
} | } | ||||
void CButton::getTextSize(ScriptInterface& scriptInterface, JS::MutableHandleValue ret) | |||||
{ | |||||
ScriptRequest rq(scriptInterface); | |||||
UpdateText(); | |||||
ScriptInterface::ToJSVal(rq, ret, m_GeneratedTexts[0].GetSize()); | |||||
} | |||||
void CButton::CreateJSObject() | |||||
{ | |||||
ScriptRequest rq(m_pGUI.GetScriptInterface()); | |||||
using ProxyHandler = JSI_GUIProxy<std::remove_pointer_t<decltype(this)>>; | |||||
ProxyHandler::CreateJSObject(rq, this, GetGUI().GetProxyData(&ProxyHandler::Singleton()), m_JSObject); | |||||
} |
Wildfire Games · Phabricator