Changeset View
Changeset View
Standalone View
Standalone View
source/gui/ObjectTypes/CText.cpp
Show All 22 Lines | |||||
#include "gui/CGUIScrollBarVertical.h" | #include "gui/CGUIScrollBarVertical.h" | ||||
#include "gui/CGUIText.h" | #include "gui/CGUIText.h" | ||||
#include "scriptinterface/ScriptInterface.h" | #include "scriptinterface/ScriptInterface.h" | ||||
CText::CText(CGUI& pGUI) | CText::CText(CGUI& pGUI) | ||||
: IGUIObject(pGUI), | : IGUIObject(pGUI), | ||||
IGUIScrollBarOwner(*static_cast<IGUIObject*>(this)), | IGUIScrollBarOwner(*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_Clip(), | m_Clip(this, "clip", true), | ||||
m_Font(), | m_Font(this, "font"), | ||||
m_ScrollBar(), | m_ScrollBar(this, "scrollbar", false), | ||||
m_ScrollBarStyle(), | m_ScrollBarStyle(this, "scrollbar_style"), | ||||
m_ScrollBottom(), | m_ScrollBottom(this, "scroll_bottom"), | ||||
m_ScrollTop(), | m_ScrollTop(this, "scroll_top"), | ||||
m_Sprite(), | m_Sprite(this, "sprite"), | ||||
m_TextAlign(), | m_TextColor(this, "textcolor"), | ||||
m_TextVAlign(), | m_TextColorDisabled(this, "textcolor_disabled"), | ||||
m_TextColor(), | m_IconTooltip(this, "_icon_tooltip"), | ||||
m_TextColorDisabled(), | m_IconTooltipStyle(this, "_icon_tooltip_style") | ||||
m_IconTooltip(), | { | ||||
m_IconTooltipStyle() | |||||
{ | |||||
RegisterSetting("buffer_zone", m_BufferZone); | |||||
RegisterSetting("caption", m_Caption); | |||||
RegisterSetting("clip", m_Clip); | |||||
RegisterSetting("font", m_Font); | |||||
RegisterSetting("scrollbar", m_ScrollBar); | |||||
RegisterSetting("scrollbar_style", m_ScrollBarStyle); | |||||
RegisterSetting("scroll_bottom", m_ScrollBottom); | |||||
RegisterSetting("scroll_top", m_ScrollTop); | |||||
RegisterSetting("sprite", m_Sprite); | |||||
RegisterSetting("text_align", m_TextAlign); | |||||
RegisterSetting("text_valign", m_TextVAlign); | |||||
RegisterSetting("textcolor", m_TextColor); | |||||
RegisterSetting("textcolor_disabled", m_TextColorDisabled); | |||||
// Private settings | |||||
RegisterSetting("_icon_tooltip", m_IconTooltip); | |||||
RegisterSetting("_icon_tooltip_style", m_IconTooltipStyle); | |||||
//SetSetting<bool>("ghost", true, true); | |||||
SetSetting<bool>("scrollbar", false, true); | |||||
SetSetting<bool>("clip", true, true); | |||||
// Add scroll-bar | // Add scroll-bar | ||||
CGUIScrollBarVertical* bar = new CGUIScrollBarVertical(pGUI); | CGUIScrollBarVertical* bar = new CGUIScrollBarVertical(pGUI); | ||||
bar->SetRightAligned(true); | bar->SetRightAligned(true); | ||||
AddScrollBar(bar); | AddScrollBar(bar); | ||||
// Add text | // Add text | ||||
AddText(); | AddText(); | ||||
} | } | ||||
CText::~CText() | CText::~CText() | ||||
{ | { | ||||
} | } | ||||
void CText::SetupText() | void CText::SetupText() | ||||
{ | { | ||||
if (m_GeneratedTexts.empty()) | if (m_GeneratedTexts.empty()) | ||||
return; | return; | ||||
float width = m_CachedActualSize.GetWidth(); | float width = m_CachedActualSize.GetWidth(); | ||||
// remove scrollbar if applicable | // remove scrollbar if applicable | ||||
if (m_ScrollBar && GetScrollBar(0).GetStyle()) | if (m_ScrollBar && GetScrollBar(0).GetStyle()) | ||||
width -= GetScrollBar(0).GetStyle()->m_Width; | width -= GetScrollBar(0).GetStyle()->m_Width; | ||||
m_GeneratedTexts[0] = CGUIText(m_pGUI, m_Caption, m_Font, width, m_BufferZone, this); | m_GeneratedTexts[0] = CGUIText(m_pGUI, m_Caption, m_Font, width, m_BufferZone, m_TextAlign, this); | ||||
if (!m_ScrollBar) | if (!m_ScrollBar) | ||||
CalculateTextPosition(m_CachedActualSize, m_TextPos, m_GeneratedTexts[0]); | CalculateTextPosition(m_CachedActualSize, m_TextPos, m_GeneratedTexts[0]); | ||||
// Setup scrollbar | // Setup scrollbar | ||||
if (m_ScrollBar) | if (m_ScrollBar) | ||||
{ | { | ||||
// If we are currently scrolled to the bottom of the text, | // If we are currently scrolled to the bottom of the text, | ||||
▲ Show 20 Lines • Show All 141 Lines • ▼ Show 20 Lines | for (const CGUIText& guitext : m_GeneratedTexts) | ||||
{ | { | ||||
// Check mouse over sprite | // Check mouse over sprite | ||||
if (!spritecall.m_Area.PointInside(m_pGUI.GetMousePos() - m_CachedActualSize.TopLeft())) | if (!spritecall.m_Area.PointInside(m_pGUI.GetMousePos() - m_CachedActualSize.TopLeft())) | ||||
continue; | continue; | ||||
// If tooltip exists, set the property | // If tooltip exists, set the property | ||||
if (!spritecall.m_Tooltip.empty()) | if (!spritecall.m_Tooltip.empty()) | ||||
{ | { | ||||
SetSettingFromString("_icon_tooltip_style", spritecall.m_TooltipStyle, true); | m_IconTooltipStyle.FromString(spritecall.m_TooltipStyle, true); | ||||
SetSettingFromString("_icon_tooltip", spritecall.m_Tooltip, true); | m_IconTooltip.FromString(spritecall.m_Tooltip, true); | ||||
} | } | ||||
return true; | return true; | ||||
} | } | ||||
return false; | return false; | ||||
} | } |
Wildfire Games · Phabricator