Changed the way how the context buttons are implemented and how they are forwadded...
[situare] / src / ui / panelcontextbuttonbar.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 PANELCONTEXTBUTTONBAR_H
23 #define PANELCONTEXTBUTTONBAR_H
24
25 #include <QWidget>
26
27 class PanelContextButtonBar : public QWidget
28 {
29     Q_OBJECT
30
31 public:
32     /**
33      * @brief Constructor
34      *
35      * @param parent Parent
36      */
37     PanelContextButtonBar(QWidget *parent = 0);
38
39 /*******************************************************************************
40  * BASE CLASS INHERITED AND REIMPLEMENTED MEMBER FUNCTIONS
41  ******************************************************************************/
42 protected:
43     /**
44      * @brief Draws the bar
45      *
46      * @param event Paint event
47      */
48     void paintEvent(QPaintEvent *event);
49
50 /*******************************************************************************
51  * MEMBER FUNCTIONS AND SLOTS
52  ******************************************************************************/
53 public:
54     /**
55      * @brief Sets the context buttons to the context button bar
56      *
57      * @param contextButtons Pointer to context buttons
58      */
59     void setContextButtons(QWidget *contextButtons);
60
61 /*******************************************************************************
62  * SIGNALS
63  ******************************************************************************/
64 signals:
65     /**
66      * @brief This signal is called when context button bar needs to be repositioned
67      */
68     void positionChangeRequested();
69
70 /*******************************************************************************
71  * DATA MEMBERS
72  ******************************************************************************/
73 private:
74     QPixmap m_barTile;          ///< Pixmap for button bar
75     QPixmap m_barTop;           ///< Pixmap for button bar top
76
77     QRect m_barRect;            ///< Rect for the button bar
78
79     QWidget *m_contextButtons;  ///< Widget for context buttons
80 };
81
82 #endif // PANELCONTEXTBUTTONBAR_H