diff options
author | Eugene Sandulenko | 2017-03-01 08:17:34 +0100 |
---|---|---|
committer | GitHub | 2017-03-01 08:17:34 +0100 |
commit | 7c259fe1295fda60f3d6b5f5c6e3efd67ca9b852 (patch) | |
tree | 9283a347b32a95a389ca97e901967131ad8e815d /gui/widgets/tab.h | |
parent | ace2fa77eb910b823b45c54d6608b913ea004071 (diff) | |
parent | 7dd1a1e4f52b962ebcfe78584acdb9242797028f (diff) | |
download | scummvm-rg350-7c259fe1295fda60f3d6b5f5c6e3efd67ca9b852.tar.gz scummvm-rg350-7c259fe1295fda60f3d6b5f5c6e3efd67ca9b852.tar.bz2 scummvm-rg350-7c259fe1295fda60f3d6b5f5c6e3efd67ca9b852.zip |
Merge pull request #911 from wjp/tabs
GUI: Improve tab widget
Diffstat (limited to 'gui/widgets/tab.h')
-rw-r--r-- | gui/widgets/tab.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/gui/widgets/tab.h b/gui/widgets/tab.h index 4516c3c831..a1a5e06481 100644 --- a/gui/widgets/tab.h +++ b/gui/widgets/tab.h @@ -39,15 +39,17 @@ class TabWidget : public Widget { struct Tab { String title; Widget *firstWidget; + int _tabWidth; }; typedef Common::Array<Tab> TabList; protected: int _activeTab; int _firstVisibleTab; + int _lastVisibleTab; TabList _tabs; - int _tabWidth; int _tabHeight; + int _minTabWidth; int _bodyRP, _bodyTP, _bodyLP, _bodyBP; ThemeEngine::DialogBackground _bodyBackgroundType; @@ -57,6 +59,7 @@ protected: int _butRP, _butTP, _butW, _butH; ButtonWidget *_navLeft, *_navRight; + bool _navButtonsVisible; public: TabWidget(GuiObject *boss, int x, int y, int w, int h); @@ -101,8 +104,8 @@ public: virtual void handleMouseDown(int x, int y, int button, int clickCount); virtual bool handleKeyDown(Common::KeyState state); virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data); - virtual int getFirstVisible(); - virtual void setFirstVisible(int tabID); + virtual int getFirstVisible() const; + virtual void setFirstVisible(int tabID, bool adjustIfRoom = false); virtual void reflowLayout(); @@ -111,14 +114,16 @@ public: protected: // We overload getChildY to make sure child widgets are positioned correctly. // Essentially this compensates for the space taken up by the tab title header. - virtual int16 getChildY() const; - virtual uint16 getHeight() const; + virtual int16 getChildY() const; + virtual uint16 getHeight() const; virtual void drawWidget(); virtual Widget *findWidget(int x, int y); virtual void adjustTabs(int value); + + virtual void computeLastVisibleTab(bool adjustFirstIfRoom); }; } // End of namespace GUI |