mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:37:37 +00:00
GTabWidget: Allow putting the tabs on the bottom of the widget.
They're still painted as if they are top tabs, but the subwidget placement logic is all there.
This commit is contained in:
parent
59e122f8ba
commit
7f82e86fb8
2 changed files with 47 additions and 3 deletions
|
@ -5,9 +5,17 @@
|
|||
class GTabWidget : public GWidget {
|
||||
C_OBJECT(GTabWidget)
|
||||
public:
|
||||
enum TabPosition {
|
||||
Top,
|
||||
Bottom,
|
||||
};
|
||||
|
||||
explicit GTabWidget(GWidget* parent);
|
||||
virtual ~GTabWidget() override;
|
||||
|
||||
TabPosition tab_position() const { return m_tab_position; }
|
||||
void set_tab_position(TabPosition);
|
||||
|
||||
GWidget* active_widget() const { return m_active_widget; }
|
||||
void set_active_widget(GWidget*);
|
||||
|
||||
|
@ -28,6 +36,7 @@ private:
|
|||
Rect child_rect_for_size(const Size&) const;
|
||||
Rect button_rect(int index) const;
|
||||
Rect bar_rect() const;
|
||||
Rect container_rect() const;
|
||||
void update_bar();
|
||||
|
||||
GWidget* m_active_widget { nullptr };
|
||||
|
@ -39,5 +48,6 @@ private:
|
|||
GWidget* widget { nullptr };
|
||||
};
|
||||
Vector<TabData> m_tabs;
|
||||
TabPosition m_tab_position { TabPosition::Top };
|
||||
int m_hovered_tab_index { -1 };
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue