aboutsummaryrefslogtreecommitdiff
path: root/gui/widgets/tab.h
diff options
context:
space:
mode:
authorEugene Sandulenko2017-03-01 08:17:34 +0100
committerGitHub2017-03-01 08:17:34 +0100
commit7c259fe1295fda60f3d6b5f5c6e3efd67ca9b852 (patch)
tree9283a347b32a95a389ca97e901967131ad8e815d /gui/widgets/tab.h
parentace2fa77eb910b823b45c54d6608b913ea004071 (diff)
parent7dd1a1e4f52b962ebcfe78584acdb9242797028f (diff)
downloadscummvm-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.h15
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