1
\documentclass{article}
4
\title{\$SPAD/src/graph/view2D buttons2d.c}
5
\author{The Axiom Team}
15
Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
18
Redistribution and use in source and binary forms, with or without
19
modification, are permitted provided that the following conditions are
22
- Redistributions of source code must retain the above copyright
23
notice, this list of conditions and the following disclaimer.
25
- Redistributions in binary form must reproduce the above copyright
26
notice, this list of conditions and the following disclaimer in
27
the documentation and/or other materials provided with the
30
- Neither the name of The Numerical ALgorithms Group Ltd. nor the
31
names of its contributors may be used to endorse or promote products
32
derived from this software without specific prior written permission.
34
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
35
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
36
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
37
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
38
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
39
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
40
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
41
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
42
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
43
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
44
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56
#include "buttons2d.H1"
63
#define graphColor 138
65
/*****************************************************
66
* int initButtons(buttons) *
68
* Creates the fields for each button window in the *
69
* two dimensional control panel, and returns the *
70
* number of buttons created. *
72
*****************************************************/
77
buttonStruct *buttons;
79
initButtons (buttonStruct *buttons)
84
/********** Scale(Zoom) and Translate Potentiometer Buttons **********/
88
buttons[ii].buttonX = 5;
89
buttons[ii].buttonY = 85;
90
buttons[ii].buttonWidth = 110;
91
buttons[ii].buttonHeight = 80;
92
buttons[ii].buttonKey = ii;
93
buttons[ii].pot = yes; /* scale is a potentiometer */
94
buttons[ii].graphNum = no;
95
buttons[ii].graphSelect = no;
96
buttons[ii].mask = potMASK;
97
buttons[ii].textColor = 164;
98
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
99
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
102
/* Title: "Translate" */
104
buttons[ii].buttonX = 121;
105
buttons[ii].buttonY = 85;
106
buttons[ii].buttonWidth = 110;
107
buttons[ii].buttonHeight = 80;
108
buttons[ii].buttonKey = ii;
109
buttons[ii].pot = yes; /* translate is a potentiometer */
110
buttons[ii].graphNum = no;
111
buttons[ii].graphSelect = no;
112
buttons[ii].mask = potMASK;
113
buttons[ii].textColor = 21; /* line color of translate arrow */
114
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
115
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
118
/* Scale potentiometer buttons */
120
/* Scale along X axis */
122
buttons[ii].buttonX = 5;
123
buttons[ii].buttonY = 55;
124
buttons[ii].buttonWidth = 53;
125
buttons[ii].buttonHeight = 25;
126
buttons[ii].buttonKey = ii;
127
buttons[ii].pot = no;
128
buttons[ii].graphNum = no;
129
buttons[ii].graphSelect = no;
130
buttons[ii].mask = buttonMASK;
131
strcpy(buttons[ii].text,"X On ");
132
buttons[ii].textColor = bColor;
133
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
134
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
138
/* Scale along Y axis */
140
buttons[ii].buttonX = 62;
141
buttons[ii].buttonY = 55;
142
buttons[ii].buttonWidth = 53;
143
buttons[ii].buttonHeight = 25;
144
buttons[ii].buttonKey = ii;
145
buttons[ii].pot = no;
146
buttons[ii].graphNum = no;
147
buttons[ii].graphSelect = no;
148
buttons[ii].mask = buttonMASK;
149
strcpy(buttons[ii].text,"Y On ");
150
buttons[ii].textColor = bColor;
151
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
152
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
155
/* Translate along X axis */
157
buttons[ii].buttonX = 121;
158
buttons[ii].buttonY = 55;
159
buttons[ii].buttonWidth = 53;
160
buttons[ii].buttonHeight = 25;
161
buttons[ii].buttonKey = ii;
162
buttons[ii].pot = no;
163
buttons[ii].graphNum = no;
164
buttons[ii].graphSelect = no;
165
buttons[ii].mask = buttonMASK;
166
strcpy(buttons[ii].text,"X On ");
167
buttons[ii].textColor = bColor;
168
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
169
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
173
/* Translate along Y axis */
175
buttons[ii].buttonX = 179;
176
buttons[ii].buttonY = 55;
177
buttons[ii].buttonWidth = 53;
178
buttons[ii].buttonHeight = 25;
179
buttons[ii].buttonKey = ii;
180
buttons[ii].pot = no;
181
buttons[ii].graphNum = no;
182
buttons[ii].graphSelect = no;
183
buttons[ii].mask = buttonMASK;
184
strcpy(buttons[ii].text,"Y On ");
185
buttons[ii].textColor = bColor;
186
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
187
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
191
/* Axes Turned On/Off */
193
buttons[ii].buttonX = 5;
194
buttons[ii].buttonY = 292;
195
buttons[ii].buttonWidth = 90;
196
buttons[ii].buttonHeight = 30;
197
buttons[ii].buttonKey = ii;
198
buttons[ii].pot = no;
199
buttons[ii].graphNum = no;
200
buttons[ii].graphSelect = no;
201
buttons[ii].mask = buttonMASK;
202
strcpy(buttons[ii].text,"Axes On ");
203
buttons[ii].textColor = 75;
204
buttons[ii].textHue = 10;
205
buttons[ii].textShade = 3;
206
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
207
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
210
/* Units Turned On/Off */
212
buttons[ii].buttonX = 100;
213
buttons[ii].buttonY = 292;
214
buttons[ii].buttonWidth = 90;
215
buttons[ii].buttonHeight = 30;
216
buttons[ii].buttonKey = ii;
217
buttons[ii].pot = no;
218
buttons[ii].graphNum = no;
219
buttons[ii].graphSelect = no;
220
buttons[ii].mask = buttonMASK;
221
strcpy(buttons[ii].text,"Units Off");
222
buttons[ii].textColor = 75;
223
buttons[ii].textHue = 10;
224
buttons[ii].textShade = 3;
225
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
226
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
229
/* Generate a Postscript file */
231
buttons[ii].buttonX = 195;
232
buttons[ii].buttonY = 292;
233
buttons[ii].buttonWidth = 36;
234
buttons[ii].buttonHeight = 30;
235
buttons[ii].buttonKey = ii;
236
buttons[ii].pot = no;
237
buttons[ii].graphNum = no;
238
buttons[ii].graphSelect = no;
239
buttons[ii].mask = buttonMASK;
240
strcpy(buttons[ii].text,"PS");
241
buttons[ii].textColor = 35;
242
buttons[ii].textHue = 5;
243
buttons[ii].textShade = 2;
244
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
245
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
248
/* Bounding Rectangle On/Off */
250
buttons[ii].buttonX = 5;
251
buttons[ii].buttonY = 329;
252
buttons[ii].buttonWidth = 66;
253
buttons[ii].buttonHeight = 30;
254
buttons[ii].buttonKey = ii;
255
buttons[ii].pot = no;
256
buttons[ii].graphNum = no;
257
buttons[ii].graphSelect = no;
258
buttons[ii].mask = buttonMASK;
259
strcpy(buttons[ii].text,"Box Off");
260
buttons[ii].textColor = 7;
261
buttons[ii].textHue = 26;
262
buttons[ii].textShade = 3;
263
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
264
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
267
/* Graph points On/Off */
269
buttons[ii].buttonX = 75;
270
buttons[ii].buttonY = 329;
271
buttons[ii].buttonWidth = 67;
272
buttons[ii].buttonHeight = 30;
273
buttons[ii].buttonKey = ii;
274
buttons[ii].pot = no;
275
buttons[ii].graphNum = no;
276
buttons[ii].graphSelect = no;
277
buttons[ii].mask = buttonMASK;
278
strcpy(buttons[ii].text,"Pts On ");
279
buttons[ii].textColor = 7;
280
buttons[ii].textHue = 26;
281
buttons[ii].textShade = 3;
282
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
283
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
286
/* Graph lines On/Off */
288
buttons[ii].buttonX = 147;
289
buttons[ii].buttonY = 329;
290
buttons[ii].buttonWidth = 84;
291
buttons[ii].buttonHeight = 30;
292
buttons[ii].buttonKey = ii;
293
buttons[ii].pot = no;
294
buttons[ii].graphNum = no;
295
buttons[ii].graphSelect = no;
296
buttons[ii].mask = buttonMASK;
297
strcpy(buttons[ii].text,"Lines On ");
298
buttons[ii].textColor = 7;
299
buttons[ii].textHue = 26;
300
buttons[ii].textShade = 3;
301
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
302
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
305
/* Reset View Position Button */
307
buttons[ii].buttonX = 5;
308
buttons[ii].buttonY = 364;
309
buttons[ii].buttonWidth = 60;
310
buttons[ii].buttonHeight = 30;
311
buttons[ii].buttonKey = ii;
312
buttons[ii].pot = no;
313
buttons[ii].graphNum = no;
314
buttons[ii].graphSelect = no;
315
buttons[ii].mask = buttonMASK;
316
strcpy(buttons[ii].text,"Reset");
317
buttons[ii].textColor = bColor;
318
buttons[ii].textHue = 5;
319
buttons[ii].textShade = 2;
320
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
321
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
324
/* Hide Control Panel */
326
buttons[ii].buttonX = 70;
327
buttons[ii].buttonY = 364;
328
buttons[ii].buttonWidth = 88;
329
buttons[ii].buttonHeight = 30;
330
buttons[ii].buttonKey = ii;
331
buttons[ii].pot = no;
332
buttons[ii].graphNum = no;
333
buttons[ii].graphSelect = no;
334
buttons[ii].mask = buttonMASK;
335
strcpy(buttons[ii].text,"Hide Panel");
336
buttons[ii].textColor = bColor;
337
buttons[ii].textHue = 5;
338
buttons[ii].textShade = 2;
339
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
340
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
343
/* Exits from the viewport running */
345
buttons[ii].buttonX = 169;
346
buttons[ii].buttonY = 370;
347
buttons[ii].buttonWidth = 61;
348
buttons[ii].buttonHeight = 24;
349
buttons[ii].buttonKey = ii;
350
buttons[ii].pot = no;
351
buttons[ii].graphNum = no;
352
buttons[ii].graphSelect = no;
353
buttons[ii].mask = buttonMASK;
354
strcpy(buttons[ii].text,"Quit");
355
buttons[ii].textColor = 13;
356
buttons[ii].textHue = 29;
357
buttons[ii].textShade = 2;
358
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
359
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
362
/* Indicates that the graph from a viewport is to be picked up. */
364
buttons[ii].buttonX = 190;
365
buttons[ii].buttonY = 217;
366
buttons[ii].buttonWidth = 40;
367
buttons[ii].buttonHeight = 24;
368
buttons[ii].buttonKey = ii;
369
buttons[ii].pot = no;
370
buttons[ii].graphNum = no;
371
buttons[ii].graphSelect = no;
372
buttons[ii].mask = buttonMASK;
373
strcpy(buttons[ii].text,"Pick");
374
buttons[ii].textColor = 123;
375
buttons[ii].textHue = 19;
376
buttons[ii].textShade = 3;
377
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
378
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
381
/* Indicates that the graph from a viewport is to be dropped into a slot. */
383
buttons[ii].buttonX = 190;
384
buttons[ii].buttonY = 245;
385
buttons[ii].buttonWidth = 40;
386
buttons[ii].buttonHeight = 24;
387
buttons[ii].buttonKey = ii;
388
buttons[ii].pot = no;
389
buttons[ii].graphNum = no;
390
buttons[ii].graphSelect = no;
391
buttons[ii].mask = buttonMASK;
392
strcpy(buttons[ii].text,"Drop");
393
buttons[ii].textColor = 123;
394
buttons[ii].textHue = 19;
395
buttons[ii].textShade = 3;
396
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
397
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
400
/* Indicates that the status of the graphs being displayed in the viewport
403
buttons[ii].buttonX = 5;
404
buttons[ii].buttonY = 217;
405
buttons[ii].buttonWidth = 49;
406
buttons[ii].buttonHeight = 24;
407
buttons[ii].buttonKey = ii;
408
buttons[ii].pot = no;
409
buttons[ii].graphNum = no;
410
buttons[ii].graphSelect = no;
411
buttons[ii].mask = buttonMASK;
412
strcpy(buttons[ii].text,"Clear");
413
buttons[ii].textColor = 123;
414
buttons[ii].textHue = 19;
415
buttons[ii].textShade = 3;
416
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
417
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
420
/* Asks for the scale and translation information for the specified graph. */
422
buttons[ii].buttonX = 5;
423
buttons[ii].buttonY = 245;
424
buttons[ii].buttonWidth = 49;
425
buttons[ii].buttonHeight = 24;
426
buttons[ii].buttonKey = ii;
427
buttons[ii].pot = no;
428
buttons[ii].graphNum = no;
429
buttons[ii].graphSelect = no;
430
buttons[ii].mask = buttonMASK;
431
strcpy(buttons[ii].text,"Query");
432
buttons[ii].textColor = 123;
433
buttons[ii].textHue = 19;
434
buttons[ii].textShade = 3;
435
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
436
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
439
/* These buttons indicate the 9 available slot numbers into which
440
a 2D graph can be placed, and the status of the graph, i.e. whether
441
it is displayed or not. */
444
buttons[ii].buttonX = graphBarLeft;
445
buttons[ii].buttonY = graphBarTop;
446
buttons[ii].buttonWidth = graphBarWidth;
447
buttons[ii].buttonHeight = graphBarHeight;
448
buttons[ii].buttonKey = ii;
449
buttons[ii].pot = no;
450
buttons[ii].graphNum = yes;
451
buttons[ii].graphSelect = no;
452
buttons[ii].mask = buttonMASK;
453
strcpy(buttons[ii].text,"1");
454
buttons[ii].textColor = graphColor;
455
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
456
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
460
buttons[ii].buttonX = graphBarLeft;
461
buttons[ii].buttonY = graphBarTop + graphBarHeight;
462
buttons[ii].buttonWidth = graphBarWidth;
463
buttons[ii].buttonHeight = graphBarHeight-2;
464
buttons[ii].buttonKey = ii;
465
buttons[ii].pot = no; /* this is a regular button */
466
buttons[ii].graphNum = no;
467
buttons[ii].graphSelect = yes;
468
buttons[ii].mask = buttonMASK;
469
strcpy(buttons[ii].text,"^");
470
buttons[ii].textColor = graphColor;
471
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
472
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
476
buttons[ii].buttonX = graphBarLeft + (graphBarWidth);
477
buttons[ii].buttonY = graphBarTop;
478
buttons[ii].buttonWidth = graphBarWidth;
479
buttons[ii].buttonHeight = graphBarHeight;
480
buttons[ii].buttonKey = ii;
481
buttons[ii].pot = no; /* this is a regular button */
482
buttons[ii].graphNum = yes;
483
buttons[ii].graphSelect = no;
484
buttons[ii].mask = buttonMASK;
485
strcpy(buttons[ii].text,"2");
486
buttons[ii].textColor = graphColor;
487
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
488
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
492
buttons[ii].buttonX = graphBarLeft + (graphBarWidth);
493
buttons[ii].buttonY = graphBarTop + graphBarHeight;
494
buttons[ii].buttonWidth = graphBarWidth;
495
buttons[ii].buttonHeight = graphBarHeight-2;
496
buttons[ii].buttonKey = ii;
497
buttons[ii].pot = no; /* this is a regular button */
498
buttons[ii].graphNum = no;
499
buttons[ii].graphSelect = yes;
500
buttons[ii].mask = buttonMASK;
501
strcpy(buttons[ii].text,"-");
502
buttons[ii].textColor = graphColor;
503
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
504
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
508
buttons[ii].buttonX = graphBarLeft + 2*(graphBarWidth);
509
buttons[ii].buttonY = graphBarTop;
510
buttons[ii].buttonWidth = graphBarWidth;
511
buttons[ii].buttonHeight = graphBarHeight;
512
buttons[ii].buttonKey = ii;
513
buttons[ii].pot = no; /* this is a regular button */
514
buttons[ii].graphNum = yes;
515
buttons[ii].graphSelect = no;
516
buttons[ii].mask = buttonMASK;
517
strcpy(buttons[ii].text,"3");
518
buttons[ii].textColor = graphColor;
519
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
520
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
524
buttons[ii].buttonX = graphBarLeft + 2*(graphBarWidth);
525
buttons[ii].buttonY = graphBarTop + graphBarHeight;
526
buttons[ii].buttonWidth = graphBarWidth;
527
buttons[ii].buttonHeight = graphBarHeight-2;
528
buttons[ii].buttonKey = ii;
529
buttons[ii].pot = no; /**** blend these three together ***/
530
buttons[ii].graphNum = no;
531
buttons[ii].graphSelect = yes;
532
buttons[ii].mask = buttonMASK;
533
strcpy(buttons[ii].text,"-");
534
buttons[ii].textColor = graphColor;
535
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
536
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
540
buttons[ii].buttonX = graphBarLeft + 3*(graphBarWidth);
541
buttons[ii].buttonY = graphBarTop;
542
buttons[ii].buttonWidth = graphBarWidth;
543
buttons[ii].buttonHeight = graphBarHeight;
544
buttons[ii].buttonKey = ii;
545
buttons[ii].pot = no; /* this is a regular button */
546
buttons[ii].graphNum = yes;
547
buttons[ii].graphSelect = no;
548
buttons[ii].mask = buttonMASK;
549
strcpy(buttons[ii].text,"4");
550
buttons[ii].textColor = graphColor;
551
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
552
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
556
buttons[ii].buttonX = graphBarLeft + 3*(graphBarWidth);
557
buttons[ii].buttonY = graphBarTop + graphBarHeight;
558
buttons[ii].buttonWidth = graphBarWidth;
559
buttons[ii].buttonHeight = graphBarHeight-2;
560
buttons[ii].buttonKey = ii;
561
buttons[ii].pot = no; /* this is a regular button */
562
buttons[ii].graphNum = no;
563
buttons[ii].graphSelect = yes;
564
buttons[ii].mask = buttonMASK;
565
strcpy(buttons[ii].text,"-");
566
buttons[ii].textColor = graphColor;
567
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
568
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
572
buttons[ii].buttonX = graphBarLeft + 4*(graphBarWidth);
573
buttons[ii].buttonY = graphBarTop;
574
buttons[ii].buttonWidth = graphBarWidth;
575
buttons[ii].buttonHeight = graphBarHeight;
576
buttons[ii].buttonKey = ii;
577
buttons[ii].pot = no; /* this is a regular button */
578
buttons[ii].graphNum = yes;
579
buttons[ii].graphSelect = no;
580
buttons[ii].mask = buttonMASK;
581
strcpy(buttons[ii].text,"5");
582
buttons[ii].textColor = graphColor;
583
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
584
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
588
buttons[ii].buttonX = graphBarLeft + 4*(graphBarWidth);
589
buttons[ii].buttonY = graphBarTop + graphBarHeight;
590
buttons[ii].buttonWidth = graphBarWidth;
591
buttons[ii].buttonHeight = graphBarHeight-2;
592
buttons[ii].buttonKey = ii;
593
buttons[ii].pot = no; /* this is a regular button */
594
buttons[ii].graphNum = no;
595
buttons[ii].graphSelect = yes;
596
buttons[ii].mask = buttonMASK;
597
strcpy(buttons[ii].text,"-");
598
buttons[ii].textColor = graphColor;
599
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
600
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
604
buttons[ii].buttonX = graphBarLeft + 5*(graphBarWidth);
605
buttons[ii].buttonY = graphBarTop;
606
buttons[ii].buttonWidth = graphBarWidth;
607
buttons[ii].buttonHeight = graphBarHeight;
608
buttons[ii].buttonKey = ii;
609
buttons[ii].pot = no; /* this is a regular button */
610
buttons[ii].graphNum = yes;
611
buttons[ii].graphSelect = no;
612
buttons[ii].mask = buttonMASK;
613
strcpy(buttons[ii].text,"6");
614
buttons[ii].textColor = graphColor;
615
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
616
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
620
buttons[ii].buttonX = graphBarLeft + 5*(graphBarWidth);
621
buttons[ii].buttonY = graphBarTop + graphBarHeight;
622
buttons[ii].buttonWidth = graphBarWidth;
623
buttons[ii].buttonHeight = graphBarHeight-2;
624
buttons[ii].buttonKey = ii;
625
buttons[ii].pot = no; /* this is a regular button */
626
buttons[ii].graphNum = no;
627
buttons[ii].graphSelect = yes;
628
buttons[ii].mask = buttonMASK;
629
strcpy(buttons[ii].text,"-");
630
buttons[ii].textColor = graphColor;
631
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
632
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
636
buttons[ii].buttonX = graphBarLeft + 6*(graphBarWidth);
637
buttons[ii].buttonY = graphBarTop;
638
buttons[ii].buttonWidth = graphBarWidth;
639
buttons[ii].buttonHeight = graphBarHeight;
640
buttons[ii].buttonKey = ii;
641
buttons[ii].pot = no; /* this is a regular button */
642
buttons[ii].graphNum = yes;
643
buttons[ii].graphSelect = no;
644
buttons[ii].mask = buttonMASK;
645
strcpy(buttons[ii].text,"7");
646
buttons[ii].textColor = graphColor;
647
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
648
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
652
buttons[ii].buttonX = graphBarLeft + 6*(graphBarWidth);
653
buttons[ii].buttonY = graphBarTop + graphBarHeight;
654
buttons[ii].buttonWidth = graphBarWidth;
655
buttons[ii].buttonHeight = graphBarHeight-2;
656
buttons[ii].buttonKey = ii;
657
buttons[ii].pot = no; /* this is a regular button */
658
buttons[ii].graphNum = no;
659
buttons[ii].graphSelect = yes;
660
buttons[ii].mask = buttonMASK;
661
strcpy(buttons[ii].text,"-");
662
buttons[ii].textColor = graphColor;
663
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
664
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
668
buttons[ii].buttonX = graphBarLeft + 7*(graphBarWidth);
669
buttons[ii].buttonY = graphBarTop;
670
buttons[ii].buttonWidth = graphBarWidth;
671
buttons[ii].buttonHeight = graphBarHeight;
672
buttons[ii].buttonKey = ii;
673
buttons[ii].pot = no; /* this is a regular button */
674
buttons[ii].graphNum = yes;
675
buttons[ii].graphSelect = no;
676
buttons[ii].mask = buttonMASK;
677
strcpy(buttons[ii].text,"8");
678
buttons[ii].textColor = graphColor;
679
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
680
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
684
buttons[ii].buttonX = graphBarLeft + 7*(graphBarWidth);
685
buttons[ii].buttonY = graphBarTop + graphBarHeight;
686
buttons[ii].buttonWidth = graphBarWidth;
687
buttons[ii].buttonHeight = graphBarHeight-2;
688
buttons[ii].buttonKey = ii;
689
buttons[ii].pot = no; /* this is a regular button */
690
buttons[ii].graphNum = no;
691
buttons[ii].graphSelect = yes;
692
buttons[ii].mask = buttonMASK;
693
strcpy(buttons[ii].text,"-");
694
buttons[ii].textColor = graphColor;
695
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
696
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
700
buttons[ii].buttonX = graphBarLeft + 8*(graphBarWidth);
701
buttons[ii].buttonY = graphBarTop;
702
buttons[ii].buttonWidth = graphBarWidth;
703
buttons[ii].buttonHeight = graphBarHeight;
704
buttons[ii].buttonKey = ii;
705
buttons[ii].pot = no; /* this is a regular button */
706
buttons[ii].graphNum = yes;
707
buttons[ii].graphSelect = no;
708
buttons[ii].mask = buttonMASK;
709
strcpy(buttons[ii].text,"9");
710
buttons[ii].textColor = graphColor;
711
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
712
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
716
buttons[ii].buttonX = graphBarLeft + 8*(graphBarWidth);
717
buttons[ii].buttonY = graphBarTop + graphBarHeight;
718
buttons[ii].buttonWidth = graphBarWidth;
719
buttons[ii].buttonHeight = graphBarHeight-2;
720
buttons[ii].buttonKey = ii;
721
buttons[ii].pot = no; /* this is a regular button */
722
buttons[ii].graphNum = no;
723
buttons[ii].graphSelect = yes;
724
buttons[ii].mask = buttonMASK;
725
strcpy(buttons[ii].text,"*");
726
buttons[ii].textColor = graphColor;
727
buttons[ii].xHalf = buttons[ii].buttonWidth/2;
728
buttons[ii].yHalf = buttons[ii].buttonHeight/2;
735
\begin{thebibliography}{99}
737
\end{thebibliography}