-rw-r--r-- | library/menubutton.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/library/menubutton.cpp b/library/menubutton.cpp index c34383a..6b1fa2b 100644 --- a/library/menubutton.cpp +++ b/library/menubutton.cpp | |||
@@ -1,187 +1,187 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include "menubutton.h" | 21 | #include "menubutton.h" |
22 | #include <qpopupmenu.h> | 22 | #include <qpopupmenu.h> |
23 | 23 | ||
24 | /*! | 24 | /*! |
25 | \class MenuButton menubutton.h | 25 | \class MenuButton menubutton.h |
26 | \brief The MenuButton class is a pushbutton with a menu. | 26 | \brief The MenuButton class is a pushbutton with a menu. |
27 | 27 | ||
28 | Similar in function to a QComboBox. | 28 | Similar in function to a QComboBox. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | /*! | 31 | /*! |
32 | \fn void MenuButton::selected(int index) | 32 | \fn void MenuButton::selected(int index) |
33 | 33 | ||
34 | This signal is emitted when the item at \a index is selected. | 34 | This signal is emitted when the item at \a index is selected. |
35 | */ | 35 | */ |
36 | 36 | ||
37 | /*! | 37 | /*! |
38 | \fn void MenuButton::selected(const QString& text) | 38 | \fn void MenuButton::selected(const QString& text) |
39 | 39 | ||
40 | This signal is emitted when the item with the given \a text is selected. | 40 | This signal is emitted when the item with the given \a text is selected. |
41 | */ | 41 | */ |
42 | 42 | ||
43 | 43 | ||
44 | /*! | 44 | /*! |
45 | Constructs a MenuButton with the given \a items added (see insertItems()). | 45 | Constructs a MenuButton with the given \a items added (see insertItems()). |
46 | The standard \a parent an \a name arguments are passed to the base class. | 46 | The standard \a parent an \a name arguments are passed to the base class. |
47 | */ | 47 | */ |
48 | MenuButton::MenuButton( const QStringList& items, QWidget* parent, const char* name) : | 48 | MenuButton::MenuButton( const QStringList& items, QWidget* parent, const char* name) : |
49 | QPushButton(parent,name) | 49 | QPushButton(parent,name) |
50 | { | 50 | { |
51 | init(); | 51 | init(); |
52 | insertItems(items); | 52 | insertItems(items); |
53 | } | 53 | } |
54 | 54 | ||
55 | /*! | 55 | /*! |
56 | Constructs an empty MenuButton. | 56 | Constructs an empty MenuButton. |
57 | The standard \a parent an \a name arguments are passed to the base class. | 57 | The standard \a parent an \a name arguments are passed to the base class. |
58 | 58 | ||
59 | \sa insertItems() | 59 | \sa insertItems() |
60 | */ | 60 | */ |
61 | MenuButton::MenuButton( QWidget* parent, const char* name) : | 61 | MenuButton::MenuButton( QWidget* parent, const char* name) : |
62 | QPushButton(parent,name) | 62 | QPushButton(parent,name) |
63 | { | 63 | { |
64 | init(); | 64 | init(); |
65 | } | 65 | } |
66 | 66 | ||
67 | void MenuButton::init() | 67 | void MenuButton::init() |
68 | { | 68 | { |
69 | setAutoDefault(FALSE); | 69 | setAutoDefault(FALSE); |
70 | pop = new QPopupMenu(this); | 70 | pop = new QPopupMenu(this); |
71 | nitems=0; | 71 | nitems=0; |
72 | connect(pop, SIGNAL(activated(int)), this, SLOT(select(int))); | 72 | connect(pop, SIGNAL(activated(int)), this, SLOT(select(int))); |
73 | setPopup(pop); | 73 | setPopup(pop); |
74 | //setPopupDelay(0); | 74 | //setPopupDelay(0); |
75 | } | 75 | } |
76 | 76 | ||
77 | /*! | 77 | /*! |
78 | Removes all items from the button and menu. | 78 | Removes all items from the button and menu. |
79 | */ | 79 | */ |
80 | void MenuButton::clear() | 80 | void MenuButton::clear() |
81 | { | 81 | { |
82 | delete pop; | 82 | delete pop; |
83 | init(); | 83 | init(); |
84 | } | 84 | } |
85 | 85 | ||
86 | /*! | 86 | /*! |
87 | Inserts string \a items into the menu. The string "--" represents | 87 | Inserts string \a items into the menu. The string "--" represents |
88 | a separator. | 88 | a separator. |
89 | */ | 89 | */ |
90 | void MenuButton::insertItems( const QStringList& items ) | 90 | void MenuButton::insertItems( const QStringList& items ) |
91 | { | 91 | { |
92 | QStringList::ConstIterator it=items.begin(); | 92 | QStringList::ConstIterator it=items.begin(); |
93 | for (; it!=items.end(); ++it) { | 93 | for (; it!=items.end(); ++it) { |
94 | if ( (*it) == "--" ) | 94 | if ( (*it) == "--" ) |
95 | insertSeparator(); | 95 | insertSeparator(); |
96 | else | 96 | else |
97 | insertItem(*it); | 97 | insertItem(*it); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | 100 | ||
101 | /*! | 101 | /*! |
102 | Inserts an \a icon and \a text into the menu. | 102 | Inserts an \a icon and \a text into the menu. |
103 | */ | 103 | */ |
104 | void MenuButton::insertItem( const QIconSet& icon, const QString& text=QString::null ) | 104 | void MenuButton::insertItem( const QIconSet& icon, const QString& text ) |
105 | { | 105 | { |
106 | pop->insertItem(icon, text, nitems++); | 106 | pop->insertItem(icon, text, nitems++); |
107 | if ( nitems==1 ) select(0); | 107 | if ( nitems==1 ) select(0); |
108 | } | 108 | } |
109 | 109 | ||
110 | /*! | 110 | /*! |
111 | Inserts \a text into the menu. | 111 | Inserts \a text into the menu. |
112 | */ | 112 | */ |
113 | void MenuButton::insertItem( const QString& text ) | 113 | void MenuButton::insertItem( const QString& text ) |
114 | { | 114 | { |
115 | pop->insertItem(text, nitems++); | 115 | pop->insertItem(text, nitems++); |
116 | if ( nitems==1 ) select(0); | 116 | if ( nitems==1 ) select(0); |
117 | } | 117 | } |
118 | 118 | ||
119 | /*! | 119 | /*! |
120 | Inserts a visual separator into the menu. | 120 | Inserts a visual separator into the menu. |
121 | */ | 121 | */ |
122 | void MenuButton::insertSeparator() | 122 | void MenuButton::insertSeparator() |
123 | { | 123 | { |
124 | pop->insertSeparator(); | 124 | pop->insertSeparator(); |
125 | } | 125 | } |
126 | 126 | ||
127 | /*! | 127 | /*! |
128 | Selects the items with text \a s. | 128 | Selects the items with text \a s. |
129 | */ | 129 | */ |
130 | void MenuButton::select(const QString& s) | 130 | void MenuButton::select(const QString& s) |
131 | { | 131 | { |
132 | for (int i=0; i<nitems; i++) { | 132 | for (int i=0; i<nitems; i++) { |
133 | if ( pop->text(i) == s ) { | 133 | if ( pop->text(i) == s ) { |
134 | select(i); | 134 | select(i); |
135 | break; | 135 | break; |
136 | } | 136 | } |
137 | } | 137 | } |
138 | } | 138 | } |
139 | 139 | ||
140 | /*! | 140 | /*! |
141 | Selects the item at index \a s. | 141 | Selects the item at index \a s. |
142 | */ | 142 | */ |
143 | void MenuButton::select(int s) | 143 | void MenuButton::select(int s) |
144 | { | 144 | { |
145 | cur = s; | 145 | cur = s; |
146 | updateLabel(); | 146 | updateLabel(); |
147 | if ( pop->iconSet(cur) ) | 147 | if ( pop->iconSet(cur) ) |
148 | setIconSet(*pop->iconSet(cur)); | 148 | setIconSet(*pop->iconSet(cur)); |
149 | emit selected(cur); | 149 | emit selected(cur); |
150 | emit selected(currentText()); | 150 | emit selected(currentText()); |
151 | } | 151 | } |
152 | 152 | ||
153 | /*! | 153 | /*! |
154 | Returns the index of the current item. | 154 | Returns the index of the current item. |
155 | */ | 155 | */ |
156 | int MenuButton::currentItem() const | 156 | int MenuButton::currentItem() const |
157 | { | 157 | { |
158 | return cur; | 158 | return cur; |
159 | } | 159 | } |
160 | 160 | ||
161 | /*! | 161 | /*! |
162 | Returns the text of the current item. | 162 | Returns the text of the current item. |
163 | */ | 163 | */ |
164 | QString MenuButton::currentText() const | 164 | QString MenuButton::currentText() const |
165 | { | 165 | { |
166 | return pop->text(cur); | 166 | return pop->text(cur); |
167 | } | 167 | } |
168 | 168 | ||
169 | /*! | 169 | /*! |
170 | Sets the label. If \a label is empty, the | 170 | Sets the label. If \a label is empty, the |
171 | current item text is displayed, otherwise \a label should contain | 171 | current item text is displayed, otherwise \a label should contain |
172 | "%1", which will be replaced by the current item text. | 172 | "%1", which will be replaced by the current item text. |
173 | */ | 173 | */ |
174 | void MenuButton::setLabel(const QString& label) | 174 | void MenuButton::setLabel(const QString& label) |
175 | { | 175 | { |
176 | lab = label; | 176 | lab = label; |
177 | updateLabel(); | 177 | updateLabel(); |
178 | } | 178 | } |
179 | 179 | ||
180 | void MenuButton::updateLabel() | 180 | void MenuButton::updateLabel() |
181 | { | 181 | { |
182 | QString t = pop->text(cur); | 182 | QString t = pop->text(cur); |
183 | if ( !lab.isEmpty() ) | 183 | if ( !lab.isEmpty() ) |
184 | t = lab.arg(t); | 184 | t = lab.arg(t); |
185 | setText(t); | 185 | setText(t); |
186 | } | 186 | } |
187 | 187 | ||