-rw-r--r-- | noncore/tools/calculator/calculatorimpl.cpp | 73 |
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 */ | ||
44 | static 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 */ | ||
64 | static 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 */ | ||
84 | static 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 | ||
43 | CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name, | 101 | CalculatorImpl::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 | ||
291 | void CalculatorImpl::display_pixmap_faces() { | 349 | void 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 | ||
302 | void CalculatorImpl::clear() { | 363 | void 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 | ||
315 | void CalculatorImpl::reset_conv() { | 376 | void CalculatorImpl::reset_conv() { |