summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-09-30 03:36:02 (UTC)
committer llornkcor <llornkcor>2002-09-30 03:36:02 (UTC)
commit57e740cb3826b88b10daad09b8d453dd609af9cb (patch) (unidiff)
tree32bdbebdd37107d62225aa71c926b8cb8f0c39e8
parent251458a2dd6d75c59440dc006060db2544de5d0e (diff)
downloadopie-57e740cb3826b88b10daad09b8d453dd609af9cb.zip
opie-57e740cb3826b88b10daad09b8d453dd609af9cb.tar.gz
opie-57e740cb3826b88b10daad09b8d453dd609af9cb.tar.bz2
one tr - Standard, the rest of the catagories are in etc/unit_conversion.dat
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/calculator/calculatorimpl.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/tools/calculator/calculatorimpl.cpp b/noncore/tools/calculator/calculatorimpl.cpp
index 0925073..8d11132 100644
--- a/noncore/tools/calculator/calculatorimpl.cpp
+++ b/noncore/tools/calculator/calculatorimpl.cpp
@@ -1,367 +1,367 @@
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/* 21/*
22 * 01/14/2002 Charles-Edouard Ruault <ce@ruault.com> 22 * 01/14/2002 Charles-Edouard Ruault <ce@ruault.com>
23 * Added support for Temperature conversions. 23 * Added support for Temperature conversions.
24 */ 24 */
25// Sat 03-09-2002 L.J. Potter added the inlined pixmaps here 25// Sat 03-09-2002 L.J. Potter added the inlined pixmaps here
26 26
27#include "calculatorimpl.h" 27#include "calculatorimpl.h"
28 28
29#include <qpe/resource.h> 29#include <qpe/resource.h>
30#include <qpe/qmath.h> 30#include <qpe/qmath.h>
31#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
32 32
33#include <qpushbutton.h> 33#include <qpushbutton.h>
34#include <qcombobox.h> 34#include <qcombobox.h>
35#include <qlabel.h> 35#include <qlabel.h>
36#include <qfont.h> 36#include <qfont.h>
37#include <qlayout.h> 37#include <qlayout.h>
38#include <qstringlist.h> 38#include <qstringlist.h>
39#include <qfile.h> 39#include <qfile.h>
40#include <qtextstream.h> 40#include <qtextstream.h>
41#include <qmessagebox.h> 41#include <qmessagebox.h>
42#include <math.h> 42#include <math.h>
43/* XPM */ 43/* XPM */
44static char *oneoverx_xpm[] = { 44static char *oneoverx_xpm[] = {
45/* width height num_colors chars_per_pixel */ 45/* width height num_colors chars_per_pixel */
46" 13 11 2 1", 46" 13 11 2 1",
47/* colors */ 47/* colors */
48". c None", 48". c None",
49"# c #000000", 49"# c #000000",
50/* pixels */ 50/* pixels */
51"......#......", 51"......#......",
52".....##......", 52".....##......",
53"......#......" 53"......#......"
54".....###.....", 54".....###.....",
55".............", 55".............",
56"..#########..", 56"..#########..",
57".............", 57".............",
58"....##.##....", 58"....##.##....",
59"......#......", 59"......#......",
60"......#......", 60"......#......",
61"....##.##....", 61"....##.##....",
62}; 62};
63/* XPM */ 63/* XPM */
64static char *ythrootofx_xpm[] = { 64static char *ythrootofx_xpm[] = {
65/* width height num_colors chars_per_pixel */ 65/* width height num_colors chars_per_pixel */
66" 13 11 2 1", 66" 13 11 2 1",
67/* colors */ 67/* colors */
68". c None", 68". c None",
69"# c #000000", 69"# c #000000",
70/* pixels */ 70/* pixels */
71"#.#..........", 71"#.#..........",
72"#.#..........", 72"#.#..........",
73"###...#######", 73"###...#######",
74"..#..#.......", 74"..#..#.......",
75"###..#.......", 75"###..#.......",
76".....#.#...#.", 76".....#.#...#.",
77".#..#...#.#..", 77".#..#...#.#..",
78"#.#.#....#...", 78"#.#.#....#...",
79"..#.#...#.#..", 79"..#.#...#.#..",
80"...#...#...#.", 80"...#...#...#.",
81"...#........." 81"...#........."
82}; 82};
83/* XPM */ 83/* XPM */
84static char *xtopowerofy_xpm[] = { 84static char *xtopowerofy_xpm[] = {
85/* width height num_colors chars_per_pixel */ 85/* width height num_colors chars_per_pixel */
86" 9 8 2 1", 86" 9 8 2 1",
87/* colors */ 87/* colors */
88". c None", 88". c None",
89"# c #000000", 89"# c #000000",
90/* pixels */ 90/* pixels */
91"......#.#", 91"......#.#",
92"......#.#", 92"......#.#",
93"......###", 93"......###",
94"#...#...#", 94"#...#...#",
95".#.#..###", 95".#.#..###",
96"..#......", 96"..#......",
97".#.#.....", 97".#.#.....",
98"#...#...." 98"#...#...."
99}; 99};
100 100
101CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name, 101CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name,
102 WFlags f ) 102 WFlags f )
103 : Calculator( parent, name, f ) 103 : Calculator( parent, name, f )
104{ 104{
105// xtopowerofy = Resource::loadPixmap("xtopowerofy"); 105// xtopowerofy = Resource::loadPixmap("xtopowerofy");
106// ythrootofx = Resource::loadPixmap("ythrootofx"); 106// ythrootofx = Resource::loadPixmap("ythrootofx");
107// oneoverx = Resource::loadPixmap("oneoverx"); 107// oneoverx = Resource::loadPixmap("oneoverx");
108 108
109 memMark = new QLabel( "m", LCD ); 109 memMark = new QLabel( "m", LCD );
110 memMark->setFont( QFont( "helvetica", 12, QFont::Bold, TRUE ) ); 110 memMark->setFont( QFont( "helvetica", 12, QFont::Bold, TRUE ) );
111 memMark->resize( 12, 12 ); 111 memMark->resize( 12, 12 );
112 memMark->move( 4, 2 ); 112 memMark->move( 4, 2 );
113 memMark->hide(); 113 memMark->hide();
114 mem = 0; 114 mem = 0;
115 115
116 PushButtonMR->setEnabled( FALSE ); 116 PushButtonMR->setEnabled( FALSE );
117 117
118 current_mode = max_mode = conversion_mode_count = 0; 118 current_mode = max_mode = conversion_mode_count = 0;
119 last_conversion = -1; 119 last_conversion = -1;
120 120
121//bgr_command.insert( PushButtonFunction); 121//bgr_command.insert( PushButtonFunction);
122 bgr_command.insert( PushButtonMPlus); 122 bgr_command.insert( PushButtonMPlus);
123 bgr_command.insert( PushButtonMR); 123 bgr_command.insert( PushButtonMR);
124 bgr_command.insert( PushButtonMC); 124 bgr_command.insert( PushButtonMC);
125 bgr_command.insert( PushButtonCE); 125 bgr_command.insert( PushButtonCE);
126 connect( &bgr_command, SIGNAL(clicked(int) ), this, SLOT(command_buttons(int))); 126 connect( &bgr_command, SIGNAL(clicked(int) ), this, SLOT(command_buttons(int)));
127 127
128 bgr_digits.insert(PushButton0); 128 bgr_digits.insert(PushButton0);
129 bgr_digits.insert(PushButton1); 129 bgr_digits.insert(PushButton1);
130 bgr_digits.insert(PushButton2); 130 bgr_digits.insert(PushButton2);
131 bgr_digits.insert(PushButton3); 131 bgr_digits.insert(PushButton3);
132 bgr_digits.insert(PushButton4); 132 bgr_digits.insert(PushButton4);
133 bgr_digits.insert(PushButton5); 133 bgr_digits.insert(PushButton5);
134 bgr_digits.insert(PushButton6); 134 bgr_digits.insert(PushButton6);
135 bgr_digits.insert(PushButton7); 135 bgr_digits.insert(PushButton7);
136 bgr_digits.insert(PushButton8); 136 bgr_digits.insert(PushButton8);
137 bgr_digits.insert(PushButton9); 137 bgr_digits.insert(PushButton9);
138 connect( &bgr_digits, SIGNAL(clicked(int) ), this, SLOT(enterNumber(int))); 138 connect( &bgr_digits, SIGNAL(clicked(int) ), this, SLOT(enterNumber(int)));
139 139
140 140
141 bgr_std.insert(PushButtonEquals); 141 bgr_std.insert(PushButtonEquals);
142 bgr_std.insert(PushButtonDecimal); 142 bgr_std.insert(PushButtonDecimal);
143 bgr_std.insert(PushButtonAdd); 143 bgr_std.insert(PushButtonAdd);
144 bgr_std.insert(PushButtonMinus); 144 bgr_std.insert(PushButtonMinus);
145 bgr_std.insert(PushButtonDivide); 145 bgr_std.insert(PushButtonDivide);
146 bgr_std.insert(PushButtonTimes); 146 bgr_std.insert(PushButtonTimes);
147 connect( &bgr_std, SIGNAL(clicked(int) ), this, SLOT(std_buttons(int))); 147 connect( &bgr_std, SIGNAL(clicked(int) ), this, SLOT(std_buttons(int)));
148 148
149// change the / to a proper division signal 149// change the / to a proper division signal
150 PushButtonDivide->setText(QChar(0xF7)); 150 PushButtonDivide->setText(QChar(0xF7));
151 151
152 func_buttons[0] = PushButtonF1; 152 func_buttons[0] = PushButtonF1;
153 func_buttons[1] = PushButtonF2; 153 func_buttons[1] = PushButtonF2;
154 func_buttons[2] = PushButtonF3; 154 func_buttons[2] = PushButtonF3;
155 func_buttons[3] = PushButtonF4; 155 func_buttons[3] = PushButtonF4;
156 func_buttons[4] = PushButtonF5; 156 func_buttons[4] = PushButtonF5;
157 func_buttons[5] = PushButtonF6; 157 func_buttons[5] = PushButtonF6;
158 func_buttons[6] = PushButtonF7; 158 func_buttons[6] = PushButtonF7;
159 func_buttons[7] = PushButtonF8; 159 func_buttons[7] = PushButtonF8;
160 func_buttons[8] = PushButtonF9; 160 func_buttons[8] = PushButtonF9;
161 func_buttons[9] = PushButtonF10; 161 func_buttons[9] = PushButtonF10;
162 func_buttons[10] = PushButtonF11; 162 func_buttons[10] = PushButtonF11;
163 func_buttons[11] = PushButtonF12; 163 func_buttons[11] = PushButtonF12;
164 164
165 for ( int x = 0 ; x < func_button_count ; x++ ) { 165 for ( int x = 0 ; x < func_button_count ; x++ ) {
166 QPushButton* tmpbutton = func_buttons[x]; 166 QPushButton* tmpbutton = func_buttons[x];
167 faces << tmpbutton->text(); 167 faces << tmpbutton->text();
168 bgr_function.insert(tmpbutton); 168 bgr_function.insert(tmpbutton);
169 } 169 }
170 connect( &bgr_function, SIGNAL(clicked(int) ) , this, SLOT(do_convert(int) ) ); 170 connect( &bgr_function, SIGNAL(clicked(int) ) , this, SLOT(do_convert(int) ) );
171 connect( &bgr_function, SIGNAL(clicked(int) ) , this, SLOT(std_funcs (int) ) ); 171 connect( &bgr_function, SIGNAL(clicked(int) ) , this, SLOT(std_funcs (int) ) );
172 172
173 connect(ComboBoxFunction, SIGNAL(activated(int) ), this, SLOT(function_button(int) ) ); 173 connect(ComboBoxFunction, SIGNAL(activated(int) ), this, SLOT(function_button(int) ) );
174 174
175 captions.append("Standard"); 175 captions.append(tr("Standard"));
176 ComboBoxFunction->insertItem(captions.last()); 176 ComboBoxFunction->insertItem(captions.last());
177 177
178 // now add in the conversion modes 178 // now add in the conversion modes
179 // when the menu gets done, these should be in a submenu 179 // when the menu gets done, these should be in a submenu
180 QString tmp = QPEApplication::qpeDir(); 180 QString tmp = QPEApplication::qpeDir();
181 tmp += "etc/unit_conversion.dat"; 181 tmp += "etc/unit_conversion.dat";
182 QFile myfile(tmp); 182 QFile myfile(tmp);
183 if ( !myfile.open( IO_Translate | IO_ReadOnly ) ) { 183 if ( !myfile.open( IO_Translate | IO_ReadOnly ) ) {
184 qDebug("Data file unit_conversion.dat not found\nNo conversion features will be available\n"+tmp); 184 qDebug("Data file unit_conversion.dat not found\nNo conversion features will be available\n"+tmp);
185 // disable the f button if no conv file available 185 // disable the f button if no conv file available
186 ComboBoxFunction->setEnabled(FALSE); 186 ComboBoxFunction->setEnabled(FALSE);
187 } 187 }
188 else { 188 else {
189 QString line, line2; 189 QString line, line2;
190 QTextStream ts(&myfile); 190 QTextStream ts(&myfile);
191 191
192 // first pass, see how many conversion types there are in order to allocate for them 192 // first pass, see how many conversion types there are in order to allocate for them
193 while ( ! ts.eof() ) { 193 while ( ! ts.eof() ) {
194 line = ts.readLine(); 194 line = ts.readLine();
195 if ( line.contains ("STARTTYPE" ) ) 195 if ( line.contains ("STARTTYPE" ) )
196 conversion_mode_count++; 196 conversion_mode_count++;
197 } 197 }
198 198
199 entry_list = new double[conversion_mode_count*func_button_count]; 199 entry_list = new double[conversion_mode_count*func_button_count];
200 preoffset_list = new double[conversion_mode_count*func_button_count]; 200 preoffset_list = new double[conversion_mode_count*func_button_count];
201 postoffset_list = new double[conversion_mode_count*func_button_count]; 201 postoffset_list = new double[conversion_mode_count*func_button_count];
202 myfile.close(); 202 myfile.close();
203 myfile.open( IO_Translate | IO_ReadOnly ); 203 myfile.open( IO_Translate | IO_ReadOnly );
204 QTextStream ts2(&myfile); 204 QTextStream ts2(&myfile);
205 205
206 // second pass, read in values 206 // second pass, read in values
207 int x = 0; 207 int x = 0;
208 while ( ! ts2.eof() ) { 208 while ( ! ts2.eof() ) {
209 line = ts2.readLine(); 209 line = ts2.readLine();
210 if ( line.contains("STARTTYPE") ) { 210 if ( line.contains("STARTTYPE") ) {
211 captions << line.remove(0,10); 211 captions << line.remove(0,10);
212 ComboBoxFunction->insertItem(captions.last()); 212 ComboBoxFunction->insertItem(captions.last());
213 while ( !line.contains("ENDTYPE") ) { 213 while ( !line.contains("ENDTYPE") ) {
214 line = ts2.readLine(); 214 line = ts2.readLine();
215 if ( line.contains("NAME") ) { 215 if ( line.contains("NAME") ) {
216 faces << line.remove(0,5); 216 faces << line.remove(0,5);
217 line2 = ts2.readLine(); 217 line2 = ts2.readLine();
218 line2.remove(0,6); 218 line2.remove(0,6);
219 entry_list[x] = line2.toDouble(); 219 entry_list[x] = line2.toDouble();
220 line2 = ts2.readLine(); 220 line2 = ts2.readLine();
221 line2.remove(0,7); 221 line2.remove(0,7);
222 preoffset_list[x] = line2.toDouble(); 222 preoffset_list[x] = line2.toDouble();
223 line2 = ts2.readLine(); 223 line2 = ts2.readLine();
224 line2.remove(0,8); 224 line2.remove(0,8);
225 postoffset_list[x] = line2.toDouble(); 225 postoffset_list[x] = line2.toDouble();
226 x++; 226 x++;
227 } 227 }
228 } 228 }
229 } 229 }
230 } 230 }
231 } 231 }
232 myfile.close(); 232 myfile.close();
233 clear(); 233 clear();
234 max_mode = pre_conv_modes_count + conversion_mode_count + post_conv_modes_count - 1; 234 max_mode = pre_conv_modes_count + conversion_mode_count + post_conv_modes_count - 1;
235 display_pixmap_faces(); 235 display_pixmap_faces();
236 236
237 qApp->installEventFilter( this ); 237 qApp->installEventFilter( this );
238} 238}
239 239
240bool CalculatorImpl::eventFilter( QObject *o, QEvent *e ) 240bool CalculatorImpl::eventFilter( QObject *o, QEvent *e )
241{ 241{
242 if ( e->type() == QEvent::KeyPress && state != sError ) { 242 if ( e->type() == QEvent::KeyPress && state != sError ) {
243 QKeyEvent *k = (QKeyEvent*)e; 243 QKeyEvent *k = (QKeyEvent*)e;
244 if ( k->key() >= Key_0 && k->key() <= Key_9 ) { 244 if ( k->key() >= Key_0 && k->key() <= Key_9 ) {
245 enterNumber( k->key() - Key_0 ); 245 enterNumber( k->key() - Key_0 );
246 return true; 246 return true;
247 } else { 247 } else {
248 switch ( k->key() ) { 248 switch ( k->key() ) {
249 case Key_Equal: 249 case Key_Equal:
250 std_buttons(0); 250 std_buttons(0);
251 return true; 251 return true;
252 case Key_Period: 252 case Key_Period:
253 std_buttons(1); 253 std_buttons(1);
254 return true; 254 return true;
255 case Key_Plus: 255 case Key_Plus:
256 std_buttons(2); 256 std_buttons(2);
257 return true; 257 return true;
258 case Key_Minus: 258 case Key_Minus:
259 std_buttons(3); 259 std_buttons(3);
260 return true; 260 return true;
261 case Key_Slash: 261 case Key_Slash:
262 std_buttons(4); 262 std_buttons(4);
263 return true; 263 return true;
264 case Key_Asterisk: 264 case Key_Asterisk:
265 std_buttons(5); 265 std_buttons(5);
266 return true; 266 return true;
267 case Key_Percent: 267 case Key_Percent:
268 execOp( oPercent ); 268 execOp( oPercent );
269 return true; 269 return true;
270 case Key_ParenLeft: 270 case Key_ParenLeft:
271 if ( current_mode < pre_conv_modes_count ) 271 if ( current_mode < pre_conv_modes_count )
272 execOp( oOpenBrace ); 272 execOp( oOpenBrace );
273 return true; 273 return true;
274 case Key_ParenRight: 274 case Key_ParenRight:
275 if ( current_mode < pre_conv_modes_count ) 275 if ( current_mode < pre_conv_modes_count )
276 execOp( oCloseBrace ); 276 execOp( oCloseBrace );
277 return true; 277 return true;
278 default: 278 default:
279 break; 279 break;
280 } 280 }
281 } 281 }
282 } 282 }
283 return Calculator::eventFilter( o, e ); 283 return Calculator::eventFilter( o, e );
284} 284}
285 285
286void CalculatorImpl::do_convert(int button) { 286void CalculatorImpl::do_convert(int button) {
287 if ( state == sError ) 287 if ( state == sError )
288 return; 288 return;
289 if ( current_mode >= pre_conv_modes_count && current_mode <= (max_mode - post_conv_modes_count) && 289 if ( current_mode >= pre_conv_modes_count && current_mode <= (max_mode - post_conv_modes_count) &&
290 button < changeable_func_button_count ) { 290 button < changeable_func_button_count ) {
291 if ( last_conversion > -1 ) { 291 if ( last_conversion > -1 ) {
292 if( state == sNewNumber ){ 292 if( state == sNewNumber ){
293 acc = (num+ preoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) 293 acc = (num+ preoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion])
294 / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) 294 / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion])
295 * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button]) 295 * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button])
296 +postoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + button]; 296 +postoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + button];
297 num = acc; 297 num = acc;
298 LCD->display( acc ); 298 LCD->display( acc );
299 } else { 299 } else {
300 state = sNewNumber; 300 state = sNewNumber;
301 num = (num+ preoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) 301 num = (num+ preoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion])
302 / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) 302 / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion])
303 * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button]) 303 * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button])
304 + postoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + button];; 304 + postoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + button];;
305 LCD->display( num ); 305 LCD->display( num );
306 acc = num; 306 acc = num;
307 } 307 }
308 } 308 }
309 last_conversion = button; 309 last_conversion = button;
310 } 310 }
311} 311}
312 312
313 313
314void CalculatorImpl::function_button(int mode){ 314void CalculatorImpl::function_button(int mode){
315 if ( state == sError ) 315 if ( state == sError )
316 clear(); 316 clear();
317 // dont need the next line when using a popup menu 317 // dont need the next line when using a popup menu
318 current_mode = mode; 318 current_mode = mode;
319 319
320 // reset the last conv 320 // reset the last conv
321 last_conversion = -1; 321 last_conversion = -1;
322 322
323 // set the caption 323 // set the caption
324 this->setCaption( captions[current_mode] ); 324 this->setCaption( captions[current_mode] );
325 325
326 reset_conv(); 326 reset_conv();
327 327
328 for ( int x = 0 ; x < changeable_func_button_count ; x++ ) { 328 for ( int x = 0 ; x < changeable_func_button_count ; x++ ) {
329 QPushButton* tmpbutton = func_buttons[x]; 329 QPushButton* tmpbutton = func_buttons[x];
330 330
331 // if its a conversion , make it a toggle button 331 // if its a conversion , make it a toggle button
332 if ( current_mode >= pre_conv_modes_count && current_mode <= (max_mode - post_conv_modes_count) ) { 332 if ( current_mode >= pre_conv_modes_count && current_mode <= (max_mode - post_conv_modes_count) ) {
333 tmpbutton->setToggleButton(TRUE); 333 tmpbutton->setToggleButton(TRUE);
334 } else { 334 } else {
335 tmpbutton->setToggleButton(FALSE); 335 tmpbutton->setToggleButton(FALSE);
336 } 336 }
337 tmpbutton->setText( faces[current_mode * func_button_count + x] ); 337 tmpbutton->setText( faces[current_mode * func_button_count + x] );
338 } 338 }
339 339
340 if ( current_mode == 0 ) display_pixmap_faces(); 340 if ( current_mode == 0 ) display_pixmap_faces();
341 341
342 if ( current_mode >= pre_conv_modes_count && current_mode <= (max_mode - post_conv_modes_count) ) { 342 if ( current_mode >= pre_conv_modes_count && current_mode <= (max_mode - post_conv_modes_count) ) {
343 bgr_function.setExclusive(TRUE); 343 bgr_function.setExclusive(TRUE);
344 } else { 344 } else {
345 bgr_function.setExclusive(FALSE); 345 bgr_function.setExclusive(FALSE);
346 } 346 }
347} 347}
348 348
349void CalculatorImpl::display_pixmap_faces() { 349void CalculatorImpl::display_pixmap_faces() {
350 QPixmap image0( ( const char** ) xtopowerofy_xpm); 350 QPixmap image0( ( const char** ) xtopowerofy_xpm);
351 QPushButton* tmpbutton = func_buttons[5]; 351 QPushButton* tmpbutton = func_buttons[5];
352 tmpbutton->setPixmap(image0); 352 tmpbutton->setPixmap(image0);
353 353
354 QPixmap image1( ( const char** ) ythrootofx_xpm); 354 QPixmap image1( ( const char** ) ythrootofx_xpm);
355 tmpbutton = func_buttons[6]; 355 tmpbutton = func_buttons[6];
356 tmpbutton->setPixmap(image1); 356 tmpbutton->setPixmap(image1);
357 357
358 QPixmap image2( ( const char** ) oneoverx_xpm); 358 QPixmap image2( ( const char** ) oneoverx_xpm);
359 tmpbutton = func_buttons[3]; 359 tmpbutton = func_buttons[3];
360 tmpbutton->setPixmap(image2); 360 tmpbutton->setPixmap(image2);
361} 361}
362 362
363void CalculatorImpl::clear() { 363void CalculatorImpl::clear() {
364 acc = num = 0; 364 acc = num = 0;
365 operationStack.clear(); 365 operationStack.clear();
366 state = sStart; 366 state = sStart;
367 numDecimals = 0; 367 numDecimals = 0;