summaryrefslogtreecommitdiff
path: root/LibGUI/GScrollableWidget.h
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-03-16 16:54:51 +0100
committerAndreas Kling <awesomekling@gmail.com>2019-03-16 16:54:51 +0100
commit3854e752cb29fec10d76080be011611378590f22 (patch)
tree0fab6620e33dac211a587f66e14816e3aff674d5 /LibGUI/GScrollableWidget.h
parent6fbabac4609d17ecb318ea87e6f1a84a8b69a0f5 (diff)
downloadserenity-3854e752cb29fec10d76080be011611378590f22.zip
LibGUI: Make GTextEditor inherit from GScrollableWidget.
This is quite nice, now we can share a ton of logic. :^)
Diffstat (limited to 'LibGUI/GScrollableWidget.h')
-rw-r--r--LibGUI/GScrollableWidget.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/LibGUI/GScrollableWidget.h b/LibGUI/GScrollableWidget.h
index a95e5cb8af..d48bf5b793 100644
--- a/LibGUI/GScrollableWidget.h
+++ b/LibGUI/GScrollableWidget.h
@@ -11,21 +11,35 @@ public:
virtual const char* class_name() const override { return "GScrollableWidget"; }
Size content_size() const { return m_content_size; }
+ int content_width() const { return m_content_size.width(); }
+ int content_height() const { return m_content_size.height(); }
+
+ Size padding() const { return m_padding; }
Rect visible_content_rect() const;
void scroll_into_view(const Rect&, Orientation);
+ void scroll_into_view(const Rect&, bool scroll_horizontally, bool scroll_vertically);
GScrollBar& vertical_scrollbar() { return *m_vertical_scrollbar; }
const GScrollBar& vertical_scrollbar() const { return *m_vertical_scrollbar; }
GScrollBar& horizontal_scrollbar() { return *m_horizontal_scrollbar; }
const GScrollBar& horizontal_scrollbar() const { return *m_horizontal_scrollbar; }
+ GWidget& corner_widget() { return *m_corner_widget; }
+ const GWidget& corner_widget() const { return *m_corner_widget; }
+
+ void set_scrollbars_enabled(bool);
+ bool is_scrollbars_enabled() const { return m_scrollbars_enabled; }
protected:
explicit GScrollableWidget(GWidget* parent);
virtual void resize_event(GResizeEvent&) override;
void set_content_size(const Size&);
void set_size_occupied_by_fixed_elements(const Size&);
+ void set_padding(const Size&);
+
+ int width_occupied_by_vertical_scrollbar() const;
+ int height_occupied_by_horizontal_scrollbar() const;
private:
void update_scrollbar_ranges();
@@ -35,4 +49,6 @@ private:
GWidget* m_corner_widget { nullptr };
Size m_content_size;
Size m_size_occupied_by_fixed_elements;
+ Size m_padding;
+ bool m_scrollbars_enabled { true };
};