1 // generated by Fast Light User Interface Designer (fluid) version 1.0011
2 
3 #include "mbasecalc.h"
4 #include "mbasecalc.h"
5 #include "callbacks.h"
6 #include "fmt.h"
7 #include <FL/Fl_Menu_Button.H>
8 int g_accum;
9 int g_value;
10 int g_lastopt;
11 static char digitbuf[128];
12 int g_base;
13 
14 Fl_Box *text_disp=(Fl_Box *)0;
15 
16 Fl_Button *c_button=(Fl_Button *)0;
17 
cb_c_button(Fl_Button *,void *)18 static void cb_c_button(Fl_Button*, void*) {
19   numButtonCb(12);
20 }
21 
22 Fl_Button *d_button=(Fl_Button *)0;
23 
cb_d_button(Fl_Button *,void *)24 static void cb_d_button(Fl_Button*, void*) {
25   numButtonCb(13);
26 }
27 
28 Fl_Button *e_button=(Fl_Button *)0;
29 
cb_e_button(Fl_Button *,void *)30 static void cb_e_button(Fl_Button*, void*) {
31   numButtonCb(14);
32 }
33 
34 Fl_Button *f_button=(Fl_Button *)0;
35 
cb_f_button(Fl_Button *,void *)36 static void cb_f_button(Fl_Button*, void*) {
37   numButtonCb(15);
38 }
39 
40 Fl_Button *eight_button=(Fl_Button *)0;
41 
cb_eight_button(Fl_Button *,void *)42 static void cb_eight_button(Fl_Button*, void*) {
43   numButtonCb(8);
44 }
45 
46 Fl_Button *nine_button=(Fl_Button *)0;
47 
cb_nine_button(Fl_Button *,void *)48 static void cb_nine_button(Fl_Button*, void*) {
49   numButtonCb(9);
50 }
51 
52 Fl_Button *a_button=(Fl_Button *)0;
53 
cb_a_button(Fl_Button *,void *)54 static void cb_a_button(Fl_Button*, void*) {
55   numButtonCb(10);
56 }
57 
58 Fl_Button *b_button=(Fl_Button *)0;
59 
cb_b_button(Fl_Button *,void *)60 static void cb_b_button(Fl_Button*, void*) {
61   numButtonCb(11);
62 }
63 
64 Fl_Button *four_button=(Fl_Button *)0;
65 
cb_four_button(Fl_Button *,void *)66 static void cb_four_button(Fl_Button*, void*) {
67   numButtonCb(4);
68 }
69 
70 Fl_Button *five_button=(Fl_Button *)0;
71 
cb_five_button(Fl_Button *,void *)72 static void cb_five_button(Fl_Button*, void*) {
73   numButtonCb(5);
74 }
75 
76 Fl_Button *six_button=(Fl_Button *)0;
77 
cb_six_button(Fl_Button *,void *)78 static void cb_six_button(Fl_Button*, void*) {
79   numButtonCb(6);
80 }
81 
82 Fl_Button *seven_button=(Fl_Button *)0;
83 
cb_seven_button(Fl_Button *,void *)84 static void cb_seven_button(Fl_Button*, void*) {
85   numButtonCb(7);
86 }
87 
88 Fl_Button *zero_button=(Fl_Button *)0;
89 
cb_zero_button(Fl_Button *,void *)90 static void cb_zero_button(Fl_Button*, void*) {
91   numButtonCb(0);
92 }
93 
94 Fl_Button *one_button=(Fl_Button *)0;
95 
cb_one_button(Fl_Button *,void *)96 static void cb_one_button(Fl_Button*, void*) {
97   numButtonCb(1);
98 }
99 
100 Fl_Button *two_button=(Fl_Button *)0;
101 
cb_two_button(Fl_Button *,void *)102 static void cb_two_button(Fl_Button*, void*) {
103   numButtonCb(2);
104 }
105 
106 Fl_Button *three_button=(Fl_Button *)0;
107 
cb_three_button(Fl_Button *,void *)108 static void cb_three_button(Fl_Button*, void*) {
109   numButtonCb(3);
110 }
111 
112 Fl_Button *bin_button=(Fl_Button *)0;
113 
cb_bin_button(Fl_Button *,void *)114 static void cb_bin_button(Fl_Button*, void*) {
115   modeButtonsCb(2);
116 }
117 
118 Fl_Button *oct_button=(Fl_Button *)0;
119 
cb_oct_button(Fl_Button *,void *)120 static void cb_oct_button(Fl_Button*, void*) {
121   modeButtonsCb(8);
122 }
123 
124 Fl_Button *dec_button=(Fl_Button *)0;
125 
cb_dec_button(Fl_Button *,void *)126 static void cb_dec_button(Fl_Button*, void*) {
127   modeButtonsCb(10);
128 }
129 
130 Fl_Button *hex_button=(Fl_Button *)0;
131 
cb_hex_button(Fl_Button *,void *)132 static void cb_hex_button(Fl_Button*, void*) {
133   modeButtonsCb(16);
134 }
135 
cb_(Fl_Button *,void *)136 static void cb_(Fl_Button*, void*) {
137   operCb(OPR_SHL);
138 }
139 
140 Fl_Button *backspace_tricker=(Fl_Button *)0;
141 
cb_backspace_tricker(Fl_Button *,void *)142 static void cb_backspace_tricker(Fl_Button*, void*) {
143   backSpaceCb();
144 }
145 
146 Fl_Button *enter_tricker=(Fl_Button *)0;
147 
cb_enter_tricker(Fl_Button *,void *)148 static void cb_enter_tricker(Fl_Button*, void*) {
149   operCb(OPR_ASGN);
150 }
151 
cb_1(Fl_Button *,void *)152 static void cb_1(Fl_Button*, void*) {
153   operCb(OPR_ADD);
154 }
155 
cb_2(Fl_Button *,void *)156 static void cb_2(Fl_Button*, void*) {
157   operCb(OPR_SUB);
158 }
159 
cb_3(Fl_Button *,void *)160 static void cb_3(Fl_Button*, void*) {
161   operCb(OPR_AND);
162 }
163 
cb_4(Fl_Button *,void *)164 static void cb_4(Fl_Button*, void*) {
165   operCb(OPR_OR);
166 }
167 
cb_5(Fl_Button *,void *)168 static void cb_5(Fl_Button*, void*) {
169   operCb(OPR_NOT);
170 }
171 
cb_6(Fl_Button *,void *)172 static void cb_6(Fl_Button*, void*) {
173   operCb(OPR_ASGN);
174 }
175 
cb_7(Fl_Button *,void *)176 static void cb_7(Fl_Button*, void*) {
177   operCb(OPR_MUL);
178 }
179 
cb_8(Fl_Button *,void *)180 static void cb_8(Fl_Button*, void*) {
181   operCb(OPR_SHR);
182 }
183 
cb_9(Fl_Button *,void *)184 static void cb_9(Fl_Button*, void*) {
185   operCb(OPR_DIV);
186 }
187 
cb_a(Fl_Button *,void *)188 static void cb_a(Fl_Button*, void*) {
189   operCb(OPR_MOD);
190 }
191 
cb_CE(Fl_Button *,void *)192 static void cb_CE(Fl_Button*, void*) {
193   specButtonCb(OPR_CLRE);
194 }
195 
cb_CD(Fl_Button *,void *)196 static void cb_CD(Fl_Button*, void*) {
197   specButtonCb(OPR_CLRD);
198 }
199 
cb_CA(Fl_Button *,void *)200 static void cb_CA(Fl_Button*, void*) {
201   specButtonCb(OPR_CLRA);
202 }
203 
cb_b(Fl_Button *,void *)204 static void cb_b(Fl_Button*, void*) {
205   operCb(OPR_XOR);
206 }
207 
208 Fl_Button *u_button=(Fl_Button *)0;
209 
cb_u_button(Fl_Button *,void *)210 static void cb_u_button(Fl_Button*, void*) {
211   specButtonCb(OPR_UNS);
212 }
213 
214 Fl_Menu_Button *popup_menu=(Fl_Menu_Button *)0;
215 
cb_About(Fl_Menu_ *,void *)216 static void cb_About(Fl_Menu_*, void*) {
217   aboutCb();
218 }
219 
cb_Keyboard(Fl_Menu_ *,void *)220 static void cb_Keyboard(Fl_Menu_*, void*) {
221   shortcutCb();
222 }
223 
cb_Quit(Fl_Menu_ *,void *)224 static void cb_Quit(Fl_Menu_*, void*) {
225   exit(0);
226 }
227 
228 Fl_Menu_Item menu_popup_menu[] = {
229  {"About           ", 0,  (Fl_Callback*)cb_About, 0, 0, 0, 0, 14, 0},
230  {"Keyboard Shortcuts          ", 0,  (Fl_Callback*)cb_Keyboard, 0, 0, 0, 0, 14, 0},
231  {"Quit              ", 0,  (Fl_Callback*)cb_Quit, 0, 0, 0, 0, 14, 0},
232  {0}
233 };
234 
makeWindow()235 Fl_Window* makeWindow() {
236   Fl_Window* w;
237   { Fl_Window* o = new Fl_Window(303, 139, "mbasecalc - Programmers\' calculator");
238     w = o;
239     o->callback((Fl_Callback*)mainWindowExitCb);
240     o->align(FL_ALIGN_TOP|FL_ALIGN_INSIDE);
241     { Fl_Box* o = text_disp = new Fl_Box(2, 5, 300, 27, ".     .     .     .     .     .     .     .     .     .   0");
242       o->box(FL_DOWN_BOX);
243       o->color(7);
244       o->selection_color(219);
245       o->labelfont(1);
246       o->labelsize(10);
247       o->align(FL_ALIGN_RIGHT|FL_ALIGN_INSIDE);
248       o->damage(1);
249     }
250     { Fl_Button* o = c_button = new Fl_Button(2, 35, 30, 25, "C");
251       o->color(0);
252       o->labelsize(10);
253       o->labelcolor(7);
254       o->callback((Fl_Callback*)cb_c_button);
255       o->shortcut('c');
256     }
257     { Fl_Button* o = d_button = new Fl_Button(34, 35, 30, 25, "D");
258       o->color(0);
259       o->labelsize(10);
260       o->labelcolor(7);
261       o->callback((Fl_Callback*)cb_d_button);
262       o->shortcut('d');
263     }
264     { Fl_Button* o = e_button = new Fl_Button(66, 35, 30, 25, "E");
265       o->color(0);
266       o->labelsize(10);
267       o->labelcolor(7);
268       o->callback((Fl_Callback*)cb_e_button);
269       o->shortcut('e');
270     }
271     { Fl_Button* o = f_button = new Fl_Button(98, 35, 30, 25, "F");
272       o->color(0);
273       o->labelsize(10);
274       o->labelcolor(7);
275       o->callback((Fl_Callback*)cb_f_button);
276       o->shortcut('f');
277     }
278     { Fl_Button* o = eight_button = new Fl_Button(2, 61, 30, 25, "8");
279       o->color(0);
280       o->labelsize(10);
281       o->labelcolor(7);
282       o->callback((Fl_Callback*)cb_eight_button);
283       o->shortcut('8');
284     }
285     { Fl_Button* o = nine_button = new Fl_Button(34, 61, 30, 25, "9");
286       o->color(0);
287       o->labelsize(10);
288       o->labelcolor(7);
289       o->callback((Fl_Callback*)cb_nine_button);
290       o->shortcut('9');
291     }
292     { Fl_Button* o = a_button = new Fl_Button(66, 61, 30, 25, "A");
293       o->color(0);
294       o->labelsize(10);
295       o->labelcolor(7);
296       o->callback((Fl_Callback*)cb_a_button);
297       o->shortcut('a');
298     }
299     { Fl_Button* o = b_button = new Fl_Button(98, 61, 30, 25, "B");
300       o->color(0);
301       o->labelsize(10);
302       o->labelcolor(7);
303       o->callback((Fl_Callback*)cb_b_button);
304       o->shortcut('b');
305     }
306     { Fl_Button* o = four_button = new Fl_Button(2, 87, 30, 25, "4");
307       o->color(0);
308       o->labelsize(10);
309       o->labelcolor(7);
310       o->callback((Fl_Callback*)cb_four_button);
311       o->shortcut('4');
312     }
313     { Fl_Button* o = five_button = new Fl_Button(34, 87, 30, 25, "5");
314       o->color(0);
315       o->labelsize(10);
316       o->labelcolor(7);
317       o->callback((Fl_Callback*)cb_five_button);
318       o->shortcut('5');
319     }
320     { Fl_Button* o = six_button = new Fl_Button(66, 87, 30, 25, "6");
321       o->color(0);
322       o->labelsize(10);
323       o->labelcolor(7);
324       o->callback((Fl_Callback*)cb_six_button);
325       o->shortcut('6');
326     }
327     { Fl_Button* o = seven_button = new Fl_Button(98, 87, 30, 25, "7");
328       o->color(0);
329       o->labelsize(10);
330       o->labelcolor(7);
331       o->callback((Fl_Callback*)cb_seven_button);
332       o->shortcut('7');
333     }
334     { Fl_Button* o = zero_button = new Fl_Button(2, 113, 30, 25, "0");
335       o->color(0);
336       o->labelsize(10);
337       o->labelcolor(7);
338       o->callback((Fl_Callback*)cb_zero_button);
339       o->shortcut('0');
340     }
341     { Fl_Button* o = one_button = new Fl_Button(34, 113, 30, 25, "1");
342       o->color(0);
343       o->labelsize(10);
344       o->labelcolor(7);
345       o->callback((Fl_Callback*)cb_one_button);
346       o->shortcut('1');
347     }
348     { Fl_Button* o = two_button = new Fl_Button(66, 113, 30, 25, "2");
349       o->color(0);
350       o->labelsize(10);
351       o->labelcolor(7);
352       o->callback((Fl_Callback*)cb_two_button);
353       o->shortcut('2');
354     }
355     { Fl_Button* o = three_button = new Fl_Button(98, 113, 30, 25, "3");
356       o->color(0);
357       o->labelsize(10);
358       o->labelcolor(7);
359       o->callback((Fl_Callback*)cb_three_button);
360       o->shortcut('3');
361     }
362     { Fl_Button* o = bin_button = new Fl_Button(232, 35, 34, 25, "BIN");
363       o->color(0);
364       o->selection_color(80);
365       o->labelsize(10);
366       o->labelcolor(7);
367       o->callback((Fl_Callback*)cb_bin_button);
368       o->shortcut(FL_SHIFT+'b');
369     }
370     { Fl_Button* o = oct_button = new Fl_Button(200, 35, 30, 25, "OCT");
371       o->color(0);
372       o->selection_color(81);
373       o->labelsize(10);
374       o->labelcolor(7);
375       o->callback((Fl_Callback*)cb_oct_button);
376       o->shortcut(FL_SHIFT+'o');
377     }
378     { Fl_Button* o = dec_button = new Fl_Button(168, 35, 30, 23, "DEC");
379       o->color(0);
380       o->selection_color(80);
381       o->labelsize(10);
382       o->labelcolor(63);
383       o->callback((Fl_Callback*)cb_dec_button);
384       o->shortcut(FL_SHIFT+'d');
385       o->labelcolor(FL_GREEN);
386     }
387     { Fl_Button* o = hex_button = new Fl_Button(136, 35, 30, 25, "HEX");
388       o->color(0);
389       o->selection_color(80);
390       o->labelsize(10);
391       o->labelcolor(7);
392       o->callback((Fl_Callback*)cb_hex_button);
393       o->shortcut(FL_SHIFT+'h');
394       o->labelcolor(FL_WHITE);
395       o->color(FL_BLACK);
396     }
397     { Fl_Button* o = new Fl_Button(268, 87, 34, 25, "<<");
398       o->color(34);
399       o->labelsize(10);
400       o->labelcolor(7);
401       o->callback((Fl_Callback*)cb_);
402       o->shortcut('<');
403     }
404     { Fl_Button* o = backspace_tricker = new Fl_Button(128, 38, 5, 6);
405       o->box(FL_FLAT_BOX);
406       o->callback((Fl_Callback*)cb_backspace_tricker);
407       o->shortcut(FL_BackSpace);
408     }
409     { Fl_Button* o = enter_tricker = new Fl_Button(130, 123, 5, 5);
410       o->box(FL_FLAT_BOX);
411       o->callback((Fl_Callback*)cb_enter_tricker);
412       o->shortcut(FL_Enter);
413     }
414     { Fl_Button* o = new Fl_Button(136, 61, 30, 25, "+");
415       o->color(0);
416       o->labelsize(10);
417       o->labelcolor(7);
418       o->callback((Fl_Callback*)cb_1);
419       o->shortcut('+');
420     }
421     { Fl_Button* o = new Fl_Button(168, 61, 30, 25, "-");
422       o->color(0);
423       o->labelsize(12);
424       o->labelcolor(7);
425       o->callback((Fl_Callback*)cb_2);
426       o->shortcut('-');
427     }
428     { Fl_Button* o = new Fl_Button(168, 87, 30, 25, "&");
429       o->color(0);
430       o->labelsize(10);
431       o->labelcolor(7);
432       o->callback((Fl_Callback*)cb_3);
433       o->shortcut('&');
434     }
435     { Fl_Button* o = new Fl_Button(136, 87, 30, 25, "|");
436       o->color(0);
437       o->labelsize(10);
438       o->labelcolor(7);
439       o->callback((Fl_Callback*)cb_4);
440       o->shortcut('|');
441     }
442     { Fl_Button* o = new Fl_Button(168, 113, 30, 25, "~");
443       o->color(0);
444       o->labelsize(10);
445       o->labelcolor(7);
446       o->callback((Fl_Callback*)cb_5);
447       o->shortcut('~');
448     }
449     { Fl_Button* o = new Fl_Button(136, 113, 30, 25, "=");
450       o->color(0);
451       o->labelsize(10);
452       o->labelcolor(7);
453       o->callback((Fl_Callback*)cb_6);
454       o->shortcut('=');
455     }
456     { Fl_Button* o = new Fl_Button(200, 61, 30, 25, "*");
457       o->color(0);
458       o->labelsize(10);
459       o->labelcolor(7);
460       o->callback((Fl_Callback*)cb_7);
461       o->shortcut('*');
462     }
463     { Fl_Button* o = new Fl_Button(232, 87, 34, 25, ">>");
464       o->color(0);
465       o->labelsize(10);
466       o->labelcolor(7);
467       o->callback((Fl_Callback*)cb_8);
468       o->shortcut('>');
469     }
470     { Fl_Button* o = new Fl_Button(232, 61, 34, 25, "/");
471       o->color(0);
472       o->labelsize(10);
473       o->labelcolor(7);
474       o->callback((Fl_Callback*)cb_9);
475       o->shortcut('/');
476     }
477     { Fl_Button* o = new Fl_Button(268, 59, 34, 25, "%");
478       o->color(0);
479       o->labelsize(10);
480       o->labelcolor(7);
481       o->callback((Fl_Callback*)cb_a);
482       o->shortcut('%');
483     }
484     { Fl_Button* o = new Fl_Button(200, 113, 30, 25, "CE");
485       o->color(0);
486       o->labelsize(10);
487       o->labelcolor(7);
488       o->callback((Fl_Callback*)cb_CE);
489       o->shortcut(FL_CTRL+'e');
490     }
491     { Fl_Button* o = new Fl_Button(232, 113, 34, 25, "CD");
492       o->color(0);
493       o->labelsize(10);
494       o->labelcolor(7);
495       o->callback((Fl_Callback*)cb_CD);
496       o->shortcut(FL_CTRL+'d');
497     }
498     { Fl_Button* o = new Fl_Button(268, 113, 34, 25, "CA");
499       o->color(0);
500       o->labelsize(10);
501       o->labelcolor(7);
502       o->callback((Fl_Callback*)cb_CA);
503       o->shortcut(FL_CTRL+'a');
504     }
505     { Fl_Button* o = new Fl_Button(200, 87, 30, 25, "^");
506       o->color(34);
507       o->labelsize(10);
508       o->labelcolor(7);
509       o->callback((Fl_Callback*)cb_b);
510       o->shortcut('^');
511     }
512     { Fl_Button* o = u_button = new Fl_Button(268, 35, 34, 25, "U");
513       o->color(0);
514       o->labelsize(10);
515       o->labelcolor(63);
516       o->callback((Fl_Callback*)cb_u_button);
517       o->shortcut(FL_SHIFT+'s');
518     }
519     { Fl_Menu_Button* o = popup_menu = new Fl_Menu_Button(0, 0, 304, 142);
520       o->hide();
521       o->menu(menu_popup_menu);
522       o->type(Fl_Menu_Button::POPUP3);
523     }
524     o->end();
525   }
526   return w;
527 }
528 
main(int argc,char ** argv)529 int main(int argc, char **argv) {
530   Fl_Window
531         *w=makeWindow();
532     makeAboutWindow();
533 
534     popup_menu->show();
535 
536     g_value=0;
537     g_base=10;
538     memset(digitbuf,0,sizeof(digitbuf));
539 
540     makeColors();
541 
542     w->show(argc,argv);
543 
544     activateDeactivateButtons(HEX_BUTTONS,DEACTIVATE);
545     activateDeactivateButtons(NUM_BUTTONS,ACTIVATE);
546   return Fl::run();
547 }
548 
549 Fl_Window *about_window=(Fl_Window *)0;
550 
cb_ok(Fl_Button *,void *)551 static void cb_ok(Fl_Button*, void*) {
552   about_window->hide();
553 }
554 
makeAboutWindow()555 Fl_Window* makeAboutWindow() {
556   Fl_Window* w;
557   { Fl_Window* o = about_window = new Fl_Window(299, 130, "About mbasecalc");
558     w = o;
559     { Fl_Box* o = new Fl_Box(2, 2, 294, 94, "mbasecalc 1.1\n(for Linux/Unix and MS Windows)\nby\nMuhammad A Muquit\nhttp:/\
560 /www.muquit.com/muquit/software/\nmuquit@muquit.com");
561       o->box(FL_THIN_DOWN_BOX);
562       o->color(7);
563       o->labelfont(4);
564       o->labelsize(12);
565       o->align(FL_ALIGN_TOP|FL_ALIGN_INSIDE);
566     }
567     { Fl_Button* o = new Fl_Button(120, 100, 60, 26, "ok");
568       o->callback((Fl_Callback*)cb_ok);
569     }
570     o->end();
571   }
572   return w;
573 }
574 
mainWindowExitCb(Fl_Widget *,void *)575 void mainWindowExitCb(Fl_Widget *,void *) {
576   exit(0);
577 }
578