97150357af508049446b32a370b64850f340b6b8
[situare] / src / ui / panelcontentstack.h
1 /*
2     Situare - A location system for Facebook
3     Copyright (C) 2010  Ixonos Plc. Authors:
4
5         Kaj Wallin - kaj.wallin@ixonos.com
6         Pekka Nissinen - pekka.nissinen@ixonos.com
7
8     Situare is free software; you can redistribute it and/or
9     modify it under the terms of the GNU General Public License
10     version 2 as published by the Free Software Foundation.
11
12     Situare is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16
17     You should have received a copy of the GNU General Public License
18     along with Situare; if not, write to the Free Software
19     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
20     USA.
21 */
22
23 #ifndef PANELCONTENTSTACK_H
24 #define PANELCONTENTSTACK_H
25
26 #include <QStackedWidget>
27
28 class QVBoxLayout;
29
30 class PanelBase;
31
32 /**
33  * @brief Stack class for tabbed pabel widgets
34  *
35  * @author Kaj Wallin - kaj.wallin (at) ixonos.com
36  * @author Pekka Nissinen - pekka.nissinen@ixonos.com
37  */
38 class PanelContentStack : public QStackedWidget
39 {
40     Q_OBJECT
41
42 public:
43     /**
44      * @brief Constructor
45      *
46      * @param parent Parent
47      */
48     PanelContentStack(QWidget *parent = 0);
49
50 /*******************************************************************************
51  * MEMBER FUNCTIONS AND SLOTS
52  ******************************************************************************/
53 public slots:
54     /**
55      * @brief Slot to redraw the panel content area after window resize event
56      *
57      * @param size Size of the new window
58      */
59     void resizePanelContentStack(const QSize &size);
60
61 /*******************************************************************************
62  * DATA MEMBERS
63  *******************************************************************************/
64 private:
65     QVBoxLayout *m_panelVBox;   ///< Vertical layout inside the panel
66
67     PanelBase *m_panelBase;     ///< Widget for panel base
68 };
69
70 #endif // PANELCONTENTSTACK_H