Fix updating of scrollbars on text controls.

This was SVN commit r7670.
This commit is contained in:
Ykkrosh 2010-07-03 13:12:44 +00:00
parent 0560e1c970
commit 41e786837e

View File

@ -113,6 +113,11 @@ void CText::SetupText()
GetScrollBar(0).SetScrollRange(m_GeneratedTexts[0]->m_Size.cy); GetScrollBar(0).SetScrollRange(m_GeneratedTexts[0]->m_Size.cy);
GetScrollBar(0).SetScrollSpace(m_CachedActualSize.GetHeight()); GetScrollBar(0).SetScrollSpace(m_CachedActualSize.GetHeight());
GetScrollBar(0).SetX(m_CachedActualSize.right);
GetScrollBar(0).SetY(m_CachedActualSize.top);
GetScrollBar(0).SetZ(GetBufferedZ());
GetScrollBar(0).SetLength(m_CachedActualSize.bottom - m_CachedActualSize.top);
if (bottom) if (bottom)
GetScrollBar(0).SetPos(GetScrollBar(0).GetMaxPos()); GetScrollBar(0).SetPos(GetScrollBar(0).GetMaxPos());
} }
@ -126,30 +131,13 @@ void CText::HandleMessage(const SGUIMessage &Message)
switch (Message.type) switch (Message.type)
{ {
case GUIM_SETTINGS_UPDATED: case GUIM_SETTINGS_UPDATED:
bool scrollbar; if (Message.value == "scrollbar")
GUI<bool>::GetSetting(this, "scrollbar", scrollbar);
// Update scroll-bar
// TODO Gee: (2004-09-01) Is this really updated each time it should?
if (scrollbar &&
(Message.value == CStr("size") ||
Message.value == CStr("z") ||
Message.value == CStr("absolute")))
{
GetScrollBar(0).SetX( m_CachedActualSize.right );
GetScrollBar(0).SetY( m_CachedActualSize.top );
GetScrollBar(0).SetZ( GetBufferedZ() );
GetScrollBar(0).SetLength( m_CachedActualSize.bottom - m_CachedActualSize.top );
}
if (Message.value == CStr("scrollbar"))
{ {
SetupText(); SetupText();
} }
// Update scrollbar // Update scrollbar
if (Message.value == CStr("scrollbar_style")) if (Message.value == "scrollbar_style")
{ {
CStr scrollbar_style; CStr scrollbar_style;
GUI<CStr>::GetSetting(this, Message.value, scrollbar_style); GUI<CStr>::GetSetting(this, Message.value, scrollbar_style);