Luanti 5.16.0-dev
 
Loading...
Searching...
No Matches
guiScrollContainer.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2020 DS
4
5#pragma once
6
7#include "guiScrollBar.h"
8
9class GUIScrollContainer : public gui::IGUIElement
10{
11public:
12 GUIScrollContainer(gui::IGUIEnvironment *env, gui::IGUIElement *parent, s32 id,
13 const core::rect<s32> &rectangle, const std::string &orientation,
14 f32 scrollfactor);
15
16 virtual bool OnEvent(const SEvent &event) override;
17
18 virtual void draw() override;
19
20 inline void setContentPadding(std::optional<s32> padding)
21 {
22 m_content_padding_px = padding;
23 }
24
25 inline void onScrollEvent(gui::IGUIElement *caller)
26 {
27 if (caller == m_scrollbar)
29 }
30
31 void setScrollBar(GUIScrollBar *scrollbar);
32 void updateScrolling();
33
34 inline f32 getScrollFactor() const
35 {
36 return m_scrollfactor;
37 }
38
39private:
46
49 f32 m_scrollfactor; //< scrollbar pos * scrollfactor = scroll offset in pixels
50 std::optional<s32> m_content_padding_px; //< in pixels
51
52};
Definition guiScrollBar.h:25
Definition guiScrollContainer.h:10
GUIScrollContainer(gui::IGUIEnvironment *env, gui::IGUIElement *parent, s32 id, const core::rect< s32 > &rectangle, const std::string &orientation, f32 scrollfactor)
Definition guiScrollContainer.cpp:7
void setContentPadding(std::optional< s32 > padding)
Definition guiScrollContainer.h:20
void setScrollBar(GUIScrollBar *scrollbar)
Definition guiScrollContainer.cpp:55
GUIScrollBar * m_scrollbar
Definition guiScrollContainer.h:47
void updateScrolling()
Definition guiScrollContainer.cpp:97
virtual bool OnEvent(const SEvent &event) override
Definition guiScrollContainer.cpp:21
virtual void draw() override
Definition guiScrollContainer.cpp:44
void onScrollEvent(gui::IGUIElement *caller)
Definition guiScrollContainer.h:25
OrientationEnum
Definition guiScrollContainer.h:41
@ VERTICAL
Definition guiScrollContainer.h:42
@ HORIZONTAL
Definition guiScrollContainer.h:43
@ UNDEFINED
Definition guiScrollContainer.h:44
std::optional< s32 > m_content_padding_px
Definition guiScrollContainer.h:50
f32 getScrollFactor() const
Definition guiScrollContainer.h:34
OrientationEnum m_orientation
Definition guiScrollContainer.h:48
f32 m_scrollfactor
Definition guiScrollContainer.h:49