summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/calculator/calculatorimpl.cpp73
1 files changed, 67 insertions, 6 deletions
diff --git a/noncore/tools/calculator/calculatorimpl.cpp b/noncore/tools/calculator/calculatorimpl.cpp
index 3a6efe4..0925073 100644
--- a/noncore/tools/calculator/calculatorimpl.cpp
+++ b/noncore/tools/calculator/calculatorimpl.cpp
@@ -9,57 +9,115 @@
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 26
26#include "calculatorimpl.h" 27#include "calculatorimpl.h"
27 28
28#include <qpe/resource.h> 29#include <qpe/resource.h>
29#include <qpe/qmath.h> 30#include <qpe/qmath.h>
30#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
31 32
32#include <qpushbutton.h> 33#include <qpushbutton.h>
33#include <qcombobox.h> 34#include <qcombobox.h>
34#include <qlabel.h> 35#include <qlabel.h>
35#include <qfont.h> 36#include <qfont.h>
36#include <qlayout.h> 37#include <qlayout.h>
37#include <qstringlist.h> 38#include <qstringlist.h>
38#include <qfile.h> 39#include <qfile.h>
39#include <qtextstream.h> 40#include <qtextstream.h>
40#include <qmessagebox.h> 41#include <qmessagebox.h>
41#include <math.h> 42#include <math.h>
43/* XPM */
44static char *oneoverx_xpm[] = {
45/* width height num_colors chars_per_pixel */
46" 13 11 2 1",
47/* colors */
48". c None",
49"# c #000000",
50/* pixels */
51"......#......",
52".....##......",
53"......#......"
54".....###.....",
55".............",
56"..#########..",
57".............",
58"....##.##....",
59"......#......",
60"......#......",
61"....##.##....",
62};
63/* XPM */
64static char *ythrootofx_xpm[] = {
65/* width height num_colors chars_per_pixel */
66" 13 11 2 1",
67/* colors */
68". c None",
69"# c #000000",
70/* pixels */
71"#.#..........",
72"#.#..........",
73"###...#######",
74"..#..#.......",
75"###..#.......",
76".....#.#...#.",
77".#..#...#.#..",
78"#.#.#....#...",
79"..#.#...#.#..",
80"...#...#...#.",
81"...#........."
82};
83/* XPM */
84static char *xtopowerofy_xpm[] = {
85/* width height num_colors chars_per_pixel */
86" 9 8 2 1",
87/* colors */
88". c None",
89"# c #000000",
90/* pixels */
91"......#.#",
92"......#.#",
93"......###",
94"#...#...#",
95".#.#..###",
96"..#......",
97".#.#.....",
98"#...#...."
99};
42 100
43CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name, 101CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name,
44 WFlags f ) 102 WFlags f )
45 : Calculator( parent, name, f ) 103 : Calculator( parent, name, f )
46{ 104{
47 xtopowerofy = Resource::loadPixmap("xtopowerofy"); 105// xtopowerofy = Resource::loadPixmap("xtopowerofy");
48 ythrootofx = Resource::loadPixmap("ythrootofx"); 106// ythrootofx = Resource::loadPixmap("ythrootofx");
49 oneoverx = Resource::loadPixmap("oneoverx"); 107// oneoverx = Resource::loadPixmap("oneoverx");
50 108
51 memMark = new QLabel( "m", LCD ); 109 memMark = new QLabel( "m", LCD );
52 memMark->setFont( QFont( "helvetica", 12, QFont::Bold, TRUE ) ); 110 memMark->setFont( QFont( "helvetica", 12, QFont::Bold, TRUE ) );
53 memMark->resize( 12, 12 ); 111 memMark->resize( 12, 12 );
54 memMark->move( 4, 2 ); 112 memMark->move( 4, 2 );
55 memMark->hide(); 113 memMark->hide();
56 mem = 0; 114 mem = 0;
57 115
58 PushButtonMR->setEnabled( FALSE ); 116 PushButtonMR->setEnabled( FALSE );
59 117
60 current_mode = max_mode = conversion_mode_count = 0; 118 current_mode = max_mode = conversion_mode_count = 0;
61 last_conversion = -1; 119 last_conversion = -1;
62 120
63//bgr_command.insert( PushButtonFunction); 121//bgr_command.insert( PushButtonFunction);
64 bgr_command.insert( PushButtonMPlus); 122 bgr_command.insert( PushButtonMPlus);
65 bgr_command.insert( PushButtonMR); 123 bgr_command.insert( PushButtonMR);
@@ -276,40 +334,43 @@ void CalculatorImpl::function_button(int mode){
276 } else { 334 } else {
277 tmpbutton->setToggleButton(FALSE); 335 tmpbutton->setToggleButton(FALSE);
278 } 336 }
279 tmpbutton->setText( faces[current_mode * func_button_count + x] ); 337 tmpbutton->setText( faces[current_mode * func_button_count + x] );
280 } 338 }
281 339
282 if ( current_mode == 0 ) display_pixmap_faces(); 340 if ( current_mode == 0 ) display_pixmap_faces();
283 341
284 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) ) {
285 bgr_function.setExclusive(TRUE); 343 bgr_function.setExclusive(TRUE);
286 } else { 344 } else {
287 bgr_function.setExclusive(FALSE); 345 bgr_function.setExclusive(FALSE);
288 } 346 }
289} 347}
290 348
291void CalculatorImpl::display_pixmap_faces() { 349void CalculatorImpl::display_pixmap_faces() {
350 QPixmap image0( ( const char** ) xtopowerofy_xpm);
292 QPushButton* tmpbutton = func_buttons[5]; 351 QPushButton* tmpbutton = func_buttons[5];
293 tmpbutton->setPixmap(xtopowerofy); 352 tmpbutton->setPixmap(image0);
294 353
354 QPixmap image1( ( const char** ) ythrootofx_xpm);
295 tmpbutton = func_buttons[6]; 355 tmpbutton = func_buttons[6];
296 tmpbutton->setPixmap(ythrootofx); 356 tmpbutton->setPixmap(image1);
297 357
358 QPixmap image2( ( const char** ) oneoverx_xpm);
298 tmpbutton = func_buttons[3]; 359 tmpbutton = func_buttons[3];
299 tmpbutton->setPixmap(oneoverx); 360 tmpbutton->setPixmap(image2);
300} 361}
301 362
302void CalculatorImpl::clear() { 363void CalculatorImpl::clear() {
303 acc = num = 0; 364 acc = num = 0;
304 operationStack.clear(); 365 operationStack.clear();
305 state = sStart; 366 state = sStart;
306 numDecimals = 0; 367 numDecimals = 0;
307 numOpenBraces = 0; 368 numOpenBraces = 0;
308 flPoint = FALSE; 369 flPoint = FALSE;
309 LCD->display( 0 ); 370 LCD->display( 0 );
310 fake = QString::null; 371 fake = QString::null;
311 372
312 reset_conv(); 373 reset_conv();
313} 374}
314 375
315void CalculatorImpl::reset_conv() { 376void CalculatorImpl::reset_conv() {