diff options
author | stujones11 <stujones111@gmail.com> | 2019-05-24 16:42:05 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2019-05-24 16:42:05 +0100 |
commit | b917ea4723fb0fe976486602a456c8dd41eab7ef (patch) | |
tree | ab459ae6aaeb19599d19a63b4508dcc60b632386 /src/gui/intlGUIEditBox.cpp | |
parent | a2848c9cdeba8d077c61ef20108cb208fd073ef8 (diff) | |
download | minetest-b917ea4723fb0fe976486602a456c8dd41eab7ef.tar.gz minetest-b917ea4723fb0fe976486602a456c8dd41eab7ef.tar.bz2 minetest-b917ea4723fb0fe976486602a456c8dd41eab7ef.zip |
Add IGUIScrollbar implementation with variable bar sizes (#8507)
Diffstat (limited to 'src/gui/intlGUIEditBox.cpp')
-rw-r--r-- | src/gui/intlGUIEditBox.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gui/intlGUIEditBox.cpp b/src/gui/intlGUIEditBox.cpp index fd3caa0f7..1f1c85ad5 100644 --- a/src/gui/intlGUIEditBox.cpp +++ b/src/gui/intlGUIEditBox.cpp @@ -113,6 +113,9 @@ intlGUIEditBox::~intlGUIEditBox() if (Operator) Operator->drop(); + + if (m_vscrollbar) + m_vscrollbar->drop(); } @@ -1479,7 +1482,9 @@ void intlGUIEditBox::createVScrollBar() irr::core::rect<s32> scrollbarrect = FrameRect; scrollbarrect.UpperLeftCorner.X += FrameRect.getWidth() - m_scrollbar_width; - m_vscrollbar = Environment->addScrollBar(false, scrollbarrect, getParent(), getID()); + m_vscrollbar = new guiScrollBar(Environment, getParent(), -1, + scrollbarrect, false, true); + m_vscrollbar->setVisible(false); m_vscrollbar->setSmallStep(3 * fontHeight); m_vscrollbar->setLargeStep(10 * fontHeight); @@ -1501,6 +1506,7 @@ void intlGUIEditBox::updateVScrollBar() if (scrollymax != m_vscrollbar->getMax()) { // manage a newline or a deleted line m_vscrollbar->setMax(scrollymax); + m_vscrollbar->setPageSize(s32(getTextDimension().Height)); calculateScrollPos(); } else { // manage a newline or a deleted line @@ -1513,6 +1519,7 @@ void intlGUIEditBox::updateVScrollBar() s32 scrollymax = getTextDimension().Height - FrameRect.getHeight(); if (scrollymax != m_vscrollbar->getMax()) { m_vscrollbar->setMax(scrollymax); + m_vscrollbar->setPageSize(s32(getTextDimension().Height)); } if (!m_vscrollbar->isVisible() && MultiLine) { @@ -1527,6 +1534,7 @@ void intlGUIEditBox::updateVScrollBar() VScrollPos = 0; m_vscrollbar->setPos(0); m_vscrollbar->setMax(1); + m_vscrollbar->setPageSize(s32(getTextDimension().Height)); m_vscrollbar->setVisible(false); } } |