LeechCraft  0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
icoretabwidget.h
Go to the documentation of this file.
1 /**********************************************************************
2  * LeechCraft - modular cross-platform feature rich internet client.
3  * Copyright (C) 2006-2014 Georg Rudoy
4  *
5  * Distributed under the Boost Software License, Version 1.0.
6  * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7  **********************************************************************/
8 
9 #pragma once
10 
11 #include <QTabBar>
12 #include <QVariant>
13 
14 class QObject;
15 class QWidget;
16 class QIcon;
17 class QMenu;
18 
23 class Q_DECL_EXPORT ICoreTabWidget
24 {
25 public:
26  virtual ~ICoreTabWidget () = default;
27 
35  virtual QObject* GetQObject () = 0;
36 
41  virtual int WidgetCount () const = 0;
42 
49  virtual QWidget* Widget (int index) const = 0;
50 
56  virtual int IndexOf (QWidget *page) const = 0;
57 
66  virtual QMenu* GetTabMenu (int index) = 0;
67 
73  virtual QList<QAction*> GetPermanentActions () const = 0;
74 
81  virtual QString TabText (int index) const = 0;
82 
89  virtual void SetTabText (int index, const QString& text) = 0;
90 
97  virtual QIcon TabIcon (int index) const = 0;
98 
106  virtual QWidget* TabButton (int index, QTabBar::ButtonPosition position) const = 0;
107 
112  virtual QTabBar::ButtonPosition GetCloseButtonPosition () const = 0;
113 
120  virtual void SetTabClosable (int index, bool closable, QWidget *closeButton = 0) = 0;
121 
126  virtual int CurrentIndex () const = 0;
127 
133  virtual void MoveTab (int from, int to) = 0;
134 
139  virtual void setCurrentTab (int index) = 0;
140 
145  virtual void setCurrentWidget (QWidget *widget) = 0;
146 
151  virtual QWidget* GetPreviousWidget () const = 0;
152 protected:
159  virtual void tabInserted (int index) = 0;
160 
168  virtual void currentChanged (int index) = 0;
169 
177  virtual void tabWasMoved (int from, int to) = 0;
178 };
179 
180 Q_DECLARE_INTERFACE (ICoreTabWidget, "org.Deviant.LeechCraft.ICoreTabWidget/1.0")
This interface is used to represent LeechCraft&#39;s core tab widget.