blob: 6186bc26b63950be71a2ad8001cd017c07c4d87d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
/***************************************************************************
* Copyright (C) 2005 by Daniel Stöckel *
* the_docter@gmx.net *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef MENU_H
#define MENU_H
#include <qbuttongroup.h>
#include <qptrlist.h>
#include "roundbutton.h"
#define BUTTON_DESELECT -1000
class RoundButton;
class Menu : public QButtonGroup
{
Q_OBJECT
public:
Menu(Menu* parentMenu=NULL, const QString& appName="");
virtual ~Menu();
virtual Menu* parentMenu(){ return mParentMenu; }
virtual void setParentMenu(Menu* menu){ mParentMenu=menu; }
virtual void selectButton(int num);
virtual void selectButton(QButton* button);
virtual void showButtons();
virtual void hideButtons();
virtual void arrangeButtons();
virtual Menu* execute();
virtual int insert ( QButton * button, int id = -1 );
//use this method for cross linking, otherway there will be problems with deletation
virtual int insertNoChild( QButton* button, int id = -1);
void setIconPath(const QString& theValue){ mIconPath = theValue; }
QString IconPath() const{ return mIconPath; }
int selectedButtonNum() const { return mSelectedButtonNum; }
virtual QButton* selectedButton();
void setAppName(const QString& theValue){ mAppName = theValue; }
QString appName() const { return mAppName; }
signals:
virtual void buttonSelected(int type);
protected:
Menu* mParentMenu;
QString mIconPath;
QPtrList<Menu> children;
int mSelectedButtonNum;
QString mAppName;
protected slots:
void slotMouseIn(RoundButton* emitter);
void slotMouseOut();
};
#endif
|