Reviewed context button bar classes and fixed a small bug that messed up the context...
[situare] / src / ui / panelbase.h
1 /*
2     Situare - A location system for Facebook
3     Copyright (C) 2010  Ixonos Plc. Authors:
4
5         Pekka Nissinen - pekka.nissinen@ixonos.com
6
7     Situare is free software; you can redistribute it and/or
8     modify it under the terms of the GNU General Public License
9     version 2 as published by the Free Software Foundation.
10
11     Situare is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with Situare; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
19     USA.
20 */
21
22 #ifndef PANELBASE_H
23 #define PANELBASE_H
24
25 #include <QWidget>
26
27 class QVBoxLayout;
28
29 class ImageButton;
30
31 /**
32  * @brief Base class for panels
33  *
34  * @author Pekka Nissinen - pekka.nissinen (at) ixonos.com
35  */
36 class PanelBase : public QWidget
37 {
38     Q_OBJECT
39
40 public:
41     /**
42      * @brief Constructor
43      *
44      * @param parent Parent
45      */
46     PanelBase(QWidget *parent = 0);
47
48 /*******************************************************************************
49  * MEMBER FUNCTIONS AND SLOTS
50  ******************************************************************************/
51 public:
52     /**
53      * @brief Getter for the context buttons
54      *
55      * @returns Pointer to context buttons widget
56      */
57     QWidget* contextButtons() const;
58
59 /*******************************************************************************
60  * SIGNALS
61  ******************************************************************************/
62 signals:
63     /**
64      * @brief Signal for requesting a panel to be opened
65      *
66      * @param widget Pointer to the widget that emitted the signal
67      */
68     void openPanelRequested(QWidget *widget);
69
70 /*******************************************************************************
71  * DATA MEMBERS
72  ******************************************************************************/
73 protected:
74     QVBoxLayout *m_contextButtonLayout; ///< Layout for context buttons
75
76 private:
77     QWidget *m_contextButtons;          ///< Widget for context buttons
78 };
79 #endif // PANELBASE_H