Pioneer
GuiTabbed.h
Go to the documentation of this file.
1 // Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _GUITABBED_H
5 #define _GUITABBED_H
6 
7 #include "GuiContainer.h"
8 
9 namespace Gui {
10  class Tabbed : public Container {
11  public:
12  Tabbed();
13  void AddPage(Widget *label, Widget *child);
14  void Remove(Widget *child);
15  virtual void Show();
16  virtual void Hide();
17  virtual void Draw();
18  virtual void GetSizeRequested(float size[2]);
19  virtual void OnChildResizeRequest(Widget *);
20  virtual void UpdateAllChildSizes();
21  virtual bool OnMouseDown(MouseButtonEvent *e);
22  void SelectPage(int page);
23  int GetCurrentPage() const { return m_page; }
24  sigc::signal<void, int> onSelectPage;
25  virtual void OnActivate();
26 
27  private:
28  bool IsLabelWidget(const Widget *);
29  void ShuffleLabels();
30  typedef std::list<std::pair<Widget *, Widget *>> pagecontainer_t;
31  pagecontainer_t m_pages;
32  unsigned int m_page;
33  std::unique_ptr<Graphics::Drawables::Rect> m_rectBGShadow;
34  struct BGVBTracker {
35  vector2f prevPos_;
36  vector2f prevSize_;
37  std::unique_ptr<Graphics::Drawables::Rect> m_rectBG;
38  } BGVBTracker_;
39  };
40 } // namespace Gui
41 
42 #endif /* _GUITABBED_H */
Definition: GuiContainer.h:16
Definition: GuiTabbed.h:10
Tabbed()
Definition: GuiTabbed.cpp:13
virtual bool OnMouseDown(MouseButtonEvent *e)
Definition: GuiTabbed.cpp:56
virtual void Draw()
Definition: GuiTabbed.cpp:152
virtual void OnChildResizeRequest(Widget *)
Definition: GuiTabbed.cpp:91
void SelectPage(int page)
Definition: GuiTabbed.cpp:45
virtual void Hide()
Definition: GuiTabbed.cpp:135
int GetCurrentPage() const
Definition: GuiTabbed.h:23
sigc::signal< void, int > onSelectPage
Definition: GuiTabbed.h:24
virtual void OnActivate()
Definition: GuiTabbed.cpp:51
virtual void GetSizeRequested(float size[2])
Definition: GuiTabbed.cpp:41
void AddPage(Widget *label, Widget *child)
Definition: GuiTabbed.cpp:19
virtual void Show()
Definition: GuiTabbed.cpp:122
virtual void UpdateAllChildSizes()
Definition: GuiTabbed.cpp:114
void Remove(Widget *child)
Definition: GuiTabbed.cpp:29
Definition: GuiWidget.h:14
Definition: Gui.cpp:10
Definition: GuiEvents.h:8