1 /*------------------------------------------------------------\
2 |                                                             |
3 | This file is part of the Alliance CAD System Copyright      |
4 | (C) Laboratoire LIP6 - D�partement ASIM Universite P&M Curie|
5 |                                                             |
6 | Home page      : http://www-asim.lip6.fr/alliance/          |
7 | E-mail         : mailto:alliance-users@asim.lip6.fr       |
8 |                                                             |
9 | This progam is  free software; you can redistribute it      |
10 | and/or modify it under the  terms of the GNU General Public |
11 | License as  published by the Free Software Foundation;      |
12 | either version 2 of the License, or (at your option) any    |
13 | later version.                                              |
14 |                                                             |
15 | Alliance VLSI  CAD System  is distributed  in the hope that |
16 | it  will be useful, but WITHOUT  ANY WARRANTY;              |
17 | without even the  implied warranty of MERCHANTABILITY or    |
18 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General       |
19 | Public License for more details.                            |
20 |                                                             |
21 | You should have received a copy  of the GNU General Public  |
22 | License along with the GNU C Library; see the file COPYING. |
23 | If not, write to the Free Software Foundation, Inc.,        |
24 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.                     |
25 |                                                             |
26 \------------------------------------------------------------*/
27 
28 /*------------------------------------------------------------\
29 |                                                             |
30 | Tool    :                   GRAAL                           |
31 |                                                             |
32 | File    :                  Panel.c                          |
33 |                                                             |
34 | Author  :                Jacomme Ludovic                    |
35 |                                                             |
36 | Date    :                  28.03.95                         |
37 |                                                             |
38 \------------------------------------------------------------*/
39 /*------------------------------------------------------------\
40 |                                                             |
41 |                         Include Files                       |
42 |                                                             |
43 \------------------------------------------------------------*/
44 
45 # include <stdio.h>
46 # include <Xm/Xm.h>
47 # include <Xm/PushBG.h>
48 # include <Xm/CascadeBG.h>
49 
50 # include "mut.h"
51 # include "mph.h"
52 # include "rds.h"
53 # include "rpr.h"
54 # include "GTB.h"
55 # include "GSB.h"
56 # include "GMX.h"
57 # include "GRM.h"
58 # include "GMC.h"
59 
60 # include "GMC_panel.h"
61 # include "GMC_dialog.h"
62 # include "GMC_create.h"
63 # include "GMC_message.h"
64 
65 /*------------------------------------------------------------\
66 |                                                             |
67 |                           Constants                         |
68 |                                                             |
69 \------------------------------------------------------------*/
70 /*------------------------------------------------------------\
71 |                                                             |
72 |                            Types                            |
73 |                                                             |
74 \------------------------------------------------------------*/
75 /*------------------------------------------------------------\
76 |                                                             |
77 |                          Variables                          |
78 |                                                             |
79 \------------------------------------------------------------*/
80 /*------------------------------------------------------------\
81 |                                                             |
82 |                         Create Panel                        |
83 |                                                             |
84 \------------------------------------------------------------*/
85 /*------------------------------------------------------------\
86 |                                                             |
87 |                       Segment Panel                         |
88 |                                                             |
89 \------------------------------------------------------------*/
90 
91    static GraalPanelButtonItem GraalCreateSegmentButton[ MBK_MAX_LAYER + 4 ] =
92 
93          {
94            {
95              NULL,
96              NULL, NULL, 0, 0,
97              NULL,
98              NULL,
99              0, 0,
100              1, 1,
101              CallbackChangeSegmentLayer,
102              (XtPointer)0,
103              (Widget)NULL
104            }
105            ,
106            {
107              NULL,
108              NULL, NULL, 0, 0,
109              NULL,
110              NULL,
111              0, 0,
112              1, 1,
113              CallbackChangeSegmentLayer,
114              (XtPointer)0,
115              (Widget)NULL
116            }
117            ,
118            {
119              NULL,
120              NULL, NULL, 0, 0,
121              NULL,
122              NULL,
123              0, 0,
124              1, 1,
125              CallbackChangeSegmentLayer,
126              (XtPointer)0,
127              (Widget)NULL
128            }
129            ,
130            {
131              NULL,
132              NULL, NULL, 0, 0,
133              NULL,
134              NULL,
135              0, 0,
136              1, 1,
137              CallbackChangeSegmentLayer,
138              (XtPointer)0,
139              (Widget)NULL
140            }
141            ,
142            {
143              NULL,
144              NULL, NULL, 0, 0,
145              NULL,
146              NULL,
147              0, 0,
148              1, 1,
149              CallbackChangeSegmentLayer,
150              (XtPointer)0,
151              (Widget)NULL
152            }
153            ,
154            {
155              NULL,
156              NULL, NULL, 0, 0,
157              NULL,
158              NULL,
159              0, 0,
160              1, 1,
161              CallbackChangeSegmentLayer,
162              (XtPointer)0,
163              (Widget)NULL
164            }
165            ,
166            {
167              NULL,
168              NULL, NULL, 0, 0,
169              NULL,
170              NULL,
171              0, 0,
172              1, 1,
173              CallbackChangeSegmentLayer,
174              (XtPointer)0,
175              (Widget)NULL
176            }
177            ,
178            {
179              NULL,
180              NULL, NULL, 0, 0,
181              NULL,
182              NULL,
183              0, 0,
184              1, 1,
185              CallbackChangeSegmentLayer,
186              (XtPointer)0,
187              (Widget)NULL
188            }
189            ,
190            {
191              NULL,
192              NULL, NULL, 0, 0,
193              NULL,
194              NULL,
195              0, 0,
196              1, 1,
197              CallbackChangeSegmentLayer,
198              (XtPointer)0,
199              (Widget)NULL
200            }
201            ,
202            {
203              NULL,
204              NULL, NULL, 0, 0,
205              NULL,
206              NULL,
207              0, 0,
208              1, 1,
209              CallbackChangeSegmentLayer,
210              (XtPointer)0,
211              (Widget)NULL
212            }
213            ,
214            {
215              NULL,
216              NULL, NULL, 0, 0,
217              NULL,
218              NULL,
219              0, 0,
220              1, 1,
221              CallbackChangeSegmentLayer,
222              (XtPointer)0,
223              (Widget)NULL
224            }
225            ,
226            {
227              NULL,
228              NULL, NULL, 0, 0,
229              NULL,
230              NULL,
231              0, 0,
232              1, 1,
233              CallbackChangeSegmentLayer,
234              (XtPointer)0,
235              (Widget)NULL
236            }
237            ,
238            {
239              NULL,
240              NULL, NULL, 0, 0,
241              NULL,
242              NULL,
243              0, 0,
244              1, 1,
245              CallbackChangeSegmentLayer,
246              (XtPointer)0,
247              (Widget)NULL
248            }
249            ,
250            {
251              NULL,
252              NULL, NULL, 0, 0,
253              NULL,
254              NULL,
255              0, 0,
256              1, 1,
257              CallbackChangeSegmentLayer,
258              (XtPointer)0,
259              (Widget)NULL
260            }
261            ,
262            {
263              NULL,
264              NULL, NULL, 0, 0,
265              NULL,
266              NULL,
267              0, 0,
268              1, 1,
269              CallbackChangeSegmentLayer,
270              (XtPointer)0,
271              (Widget)NULL
272            }
273            ,
274            {
275              NULL,
276              NULL, NULL, 0, 0,
277              NULL,
278              NULL,
279              0, 0,
280              1, 1,
281              CallbackChangeSegmentLayer,
282              (XtPointer)0,
283              (Widget)NULL
284            }
285            ,
286            {
287              NULL,
288              NULL, NULL, 0, 0,
289              NULL,
290              NULL,
291              0, 0,
292              1, 1,
293              CallbackChangeSegmentLayer,
294              (XtPointer)0,
295              (Widget)NULL
296            }
297            ,
298            {
299              NULL,
300              NULL, NULL, 0, 0,
301              NULL,
302              NULL,
303              0, 0,
304              1, 1,
305              CallbackChangeSegmentLayer,
306              (XtPointer)0,
307              (Widget)NULL
308            }
309            ,
310            {
311              NULL,
312              NULL, NULL, 0, 0,
313              NULL,
314              NULL,
315              0, 0,
316              1, 1,
317              CallbackChangeSegmentLayer,
318              (XtPointer)0,
319              (Widget)NULL
320            }
321            ,
322            {
323              NULL,
324              NULL, NULL, 0, 0,
325              NULL,
326              NULL,
327              0, 0,
328              1, 1,
329              CallbackChangeSegmentLayer,
330              (XtPointer)0,
331              (Widget)NULL
332            }
333            ,
334            {
335              NULL,
336              NULL, NULL, 0, 0,
337              NULL,
338              NULL,
339              0, 0,
340              1, 1,
341              CallbackChangeSegmentLayer,
342              (XtPointer)0,
343              (Widget)NULL
344            }
345            ,
346            {
347              NULL,
348              NULL, NULL, 0, 0,
349              NULL,
350              NULL,
351              0, 0,
352              1, 1,
353              CallbackChangeSegmentLayer,
354              (XtPointer)0,
355              (Widget)NULL
356            }
357            ,
358            {
359              NULL,
360              NULL, NULL, 0, 0,
361              NULL,
362              NULL,
363              0, 0,
364              1, 1,
365              CallbackChangeSegmentLayer,
366              (XtPointer)0,
367              (Widget)NULL
368            }
369            ,
370            {
371              NULL,
372              NULL, NULL, 0, 0,
373              NULL,
374              NULL,
375              0, 0,
376              1, 1,
377              CallbackChangeSegmentLayer,
378              (XtPointer)0,
379              (Widget)NULL
380            }
381            ,
382            {
383              NULL,
384              NULL, NULL, 0, 0,
385              NULL,
386              NULL,
387              0, 0,
388              1, 1,
389              CallbackChangeSegmentLayer,
390              (XtPointer)0,
391              (Widget)NULL
392            }
393            ,
394            {
395              NULL,
396              NULL, NULL, 0, 0,
397              NULL,
398              NULL,
399              0, 0,
400              1, 1,
401              CallbackChangeSegmentLayer,
402              (XtPointer)0,
403              (Widget)NULL
404            }
405            ,
406            {
407              NULL,
408              NULL, NULL, 0, 0,
409              NULL,
410              NULL,
411              0, 0,
412              1, 1,
413              CallbackChangeSegmentLayer,
414              (XtPointer)0,
415              (Widget)NULL
416            }
417            ,
418            {
419              NULL,
420              NULL, NULL, 0, 0,
421              NULL,
422              NULL,
423              0, 0,
424              1, 1,
425              CallbackChangeSegmentLayer,
426              (XtPointer)0,
427              (Widget)NULL
428            }
429            ,
430            {
431              NULL,
432              NULL, NULL, 0, 0,
433              NULL,
434              NULL,
435              0, 0,
436              1, 1,
437              CallbackChangeSegmentLayer,
438              (XtPointer)0,
439              (Widget)NULL
440            }
441            ,
442            {
443              NULL,
444              NULL, NULL, 0, 0,
445              NULL,
446              NULL,
447              0, 0,
448              1, 1,
449              CallbackChangeSegmentLayer,
450              (XtPointer)0,
451              (Widget)NULL
452            }
453            ,
454            {
455              NULL,
456              NULL, NULL, 0, 0,
457              NULL,
458              NULL,
459              0, 0,
460              1, 1,
461              CallbackChangeSegmentLayer,
462              (XtPointer)0,
463              (Widget)NULL
464            }
465            ,
466            {
467              NULL,
468              NULL, NULL, 0, 0,
469              NULL,
470              NULL,
471              0, 0,
472              1, 1,
473              CallbackChangeSegmentLayer,
474              (XtPointer)0,
475              (Widget)NULL
476            }
477            ,
478            {
479              NULL,
480              NULL, NULL, 0, 0,
481              NULL,
482              NULL,
483              0, 0,
484              1, 1,
485              CallbackChangeSegmentLayer,
486              (XtPointer)0,
487              (Widget)NULL
488            }
489            ,
490            {
491              NULL,
492              NULL, NULL, 0, 0,
493              NULL,
494              NULL,
495              0, 0,
496              1, 1,
497              CallbackChangeSegmentLayer,
498              (XtPointer)0,
499              (Widget)NULL
500            }
501            ,
502            {
503              NULL,
504              NULL, NULL, 0, 0,
505              NULL,
506              NULL,
507              0, 0,
508              1, 1,
509              CallbackChangeSegmentLayer,
510              (XtPointer)0,
511              (Widget)NULL
512            }
513            ,
514            {
515              NULL,
516              NULL, NULL, 0, 0,
517              NULL,
518              NULL,
519              0, 0,
520              1, 1,
521              CallbackChangeSegmentLayer,
522              (XtPointer)0,
523              (Widget)NULL
524            }
525            ,
526            {
527              NULL,
528              NULL, NULL, 0, 0,
529              NULL,
530              NULL,
531              0, 0,
532              1, 1,
533              CallbackChangeSegmentLayer,
534              (XtPointer)0,
535              (Widget)NULL
536            }
537            ,
538            {
539              NULL,
540              NULL, NULL, 0, 0,
541              NULL,
542              NULL,
543              0, 0,
544              1, 1,
545              CallbackChangeSegmentLayer,
546              (XtPointer)0,
547              (Widget)NULL
548            }
549            ,
550            {
551              NULL,
552              NULL, NULL, 0, 0,
553              NULL,
554              NULL,
555              0, 0,
556              1, 1,
557              CallbackChangeSegmentLayer,
558              (XtPointer)0,
559              (Widget)NULL
560            }
561            ,
562            {
563              NULL,
564              NULL, NULL, 0, 0,
565              NULL,
566              NULL,
567              0, 0,
568              1, 1,
569              CallbackChangeSegmentLayer,
570              (XtPointer)0,
571              (Widget)NULL
572            }
573            ,
574            {
575              NULL,
576              NULL, NULL, 0, 0,
577              NULL,
578              NULL,
579              0, 0,
580              1, 1,
581              CallbackChangeSegmentLayer,
582              (XtPointer)0,
583              (Widget)NULL
584            }
585            ,
586            {
587              NULL,
588              NULL, NULL, 0, 0,
589              NULL,
590              NULL,
591              0, 0,
592              1, 1,
593              CallbackChangeSegmentLayer,
594              (XtPointer)0,
595              (Widget)NULL
596            }
597            ,
598            {
599              NULL,
600              NULL, NULL, 0, 0,
601              NULL,
602              NULL,
603              0, 0,
604              1, 1,
605              CallbackChangeSegmentLayer,
606              (XtPointer)0,
607              (Widget)NULL
608            }
609            ,
610            {
611              "Width",
612              NULL, NULL, 0, 0,
613              NULL,
614              NULL,
615              0, 0,
616              2, 1,
617              CallbackChangeSegmentWidth,
618              (XtPointer)NULL,
619              (Widget)NULL
620            }
621            ,
622            {
623              "Name",
624              NULL, NULL, 0, 0,
625              NULL,
626              NULL,
627              0, 0,
628              2, 1,
629              CallbackChangeSegmentName,
630              (XtPointer)NULL,
631              (Widget)NULL
632            }
633            ,
634            {
635              "Simple",
636              NULL, NULL, 0, 0,
637              NULL,
638              NULL,
639              0, 0,
640              2, 1,
641              CallbackChangeSegmentWire,
642              (XtPointer)NULL,
643              (Widget)NULL
644            }
645            ,
646            {
647              "Close",
648              NULL, NULL, 0, 0,
649              NULL,
650              NULL,
651              0, 0,
652              2, 1,
653              CallbackChangeSegmentClose,
654              (XtPointer)NULL,
655              (Widget)NULL
656            }
657          };
658 
659    GraalPanelItem GraalCreateSegmentPanel  =
660 
661          {
662            "Segment",
663            1,
664            0,
665            GRAAL_CREATE_SEGMENT_X,
666            GRAAL_CREATE_SEGMENT_Y,
667            100,
668            300,
669            2,
670            ( MBK_MAX_LAYER + 4 ) / 2,
671            (Widget)NULL,
672            (Widget)NULL,
673            (Widget)NULL,
674            (Widget)NULL,
675            MBK_MAX_LAYER + 4,
676            GraalCreateSegmentButton
677          };
678 
679    int GraalCreateSegmentDefaultValues[ 5 ] =
680 
681          {
682            GRAAL_CREATE_SEGMENT_X,
683            GRAAL_CREATE_SEGMENT_Y,
684            100, 300, 0
685          };
686 
687 /*------------------------------------------------------------\
688 |                                                             |
689 |                          Via Panel                          |
690 |                                                             |
691 \------------------------------------------------------------*/
692 
693    static GraalPanelButtonItem GraalCreateViaButton[ MBK_MAX_VIA + 2 ] =
694 
695          {
696            {
697              NULL,
698              NULL, NULL, 0, 0,
699              NULL,
700              NULL,
701              0, 0,
702              1, 1,
703              CallbackChangeViaType,
704              (XtPointer)0,
705              (Widget)NULL
706            }
707            ,
708            {
709              NULL,
710              NULL, NULL, 0, 0,
711              NULL,
712              NULL,
713              0, 0,
714              1, 1,
715              CallbackChangeViaType,
716              (XtPointer)0,
717              (Widget)NULL
718            }
719            ,
720            {
721              NULL,
722              NULL, NULL, 0, 0,
723              NULL,
724              NULL,
725              0, 0,
726              1, 1,
727              CallbackChangeViaType,
728              (XtPointer)0,
729              (Widget)NULL
730            }
731            ,
732            {
733              NULL,
734              NULL, NULL, 0, 0,
735              NULL,
736              NULL,
737              0, 0,
738              1, 1,
739              CallbackChangeViaType,
740              (XtPointer)0,
741              (Widget)NULL
742            }
743            ,
744            {
745              NULL,
746              NULL, NULL, 0, 0,
747              NULL,
748              NULL,
749              0, 0,
750              1, 1,
751              CallbackChangeViaType,
752              (XtPointer)0,
753              (Widget)NULL
754            }
755            ,
756            {
757              NULL,
758              NULL, NULL, 0, 0,
759              NULL,
760              NULL,
761              0, 0,
762              1, 1,
763              CallbackChangeViaType,
764              (XtPointer)0,
765              (Widget)NULL
766            }
767            ,
768            {
769              NULL,
770              NULL, NULL, 0, 0,
771              NULL,
772              NULL,
773              0, 0,
774              1, 1,
775              CallbackChangeViaType,
776              (XtPointer)0,
777              (Widget)NULL
778            }
779            ,
780            {
781              NULL,
782              NULL, NULL, 0, 0,
783              NULL,
784              NULL,
785              0, 0,
786              1, 1,
787              CallbackChangeViaType,
788              (XtPointer)0,
789              (Widget)NULL
790            }
791            ,
792            {
793              NULL,
794              NULL, NULL, 0, 0,
795              NULL,
796              NULL,
797              0, 0,
798              1, 1,
799              CallbackChangeViaType,
800              (XtPointer)0,
801              (Widget)NULL
802            }
803            ,
804            {
805              NULL,
806              NULL, NULL, 0, 0,
807              NULL,
808              NULL,
809              0, 0,
810              1, 1,
811              CallbackChangeViaType,
812              (XtPointer)0,
813              (Widget)NULL
814            }
815            ,
816            {
817              NULL,
818              NULL, NULL, 0, 0,
819              NULL,
820              NULL,
821              0, 0,
822              1, 1,
823              CallbackChangeViaType,
824              (XtPointer)0,
825              (Widget)NULL
826            }
827            ,
828            {
829              NULL,
830              NULL, NULL, 0, 0,
831              NULL,
832              NULL,
833              0, 0,
834              1, 1,
835              CallbackChangeViaType,
836              (XtPointer)0,
837              (Widget)NULL
838            }
839            ,
840            {
841              NULL,
842              NULL, NULL, 0, 0,
843              NULL,
844              NULL,
845              0, 0,
846              1, 1,
847              CallbackChangeViaType,
848              (XtPointer)0,
849              (Widget)NULL
850            }
851            ,
852            {
853              NULL,
854              NULL, NULL, 0, 0,
855              NULL,
856              NULL,
857              0, 0,
858              1, 1,
859              CallbackChangeViaType,
860              (XtPointer)0,
861              (Widget)NULL
862            }
863            ,
864            {
865              NULL,
866              NULL, NULL, 0, 0,
867              NULL,
868              NULL,
869              0, 0,
870              1, 1,
871              CallbackChangeViaType,
872              (XtPointer)0,
873              (Widget)NULL
874            }
875            ,
876            {
877              NULL,
878              NULL, NULL, 0, 0,
879              NULL,
880              NULL,
881              0, 0,
882              1, 1,
883              CallbackChangeViaType,
884              (XtPointer)0,
885              (Widget)NULL
886            }
887            ,
888            {
889              NULL,
890              NULL, NULL, 0, 0,
891              NULL,
892              NULL,
893              0, 0,
894              1, 1,
895              CallbackChangeViaType,
896              (XtPointer)0,
897              (Widget)NULL
898            }
899            ,
900            {
901              NULL,
902              NULL, NULL, 0, 0,
903              NULL,
904              NULL,
905              0, 0,
906              1, 1,
907              CallbackChangeViaType,
908              (XtPointer)0,
909              (Widget)NULL
910            }
911            ,
912            {
913              NULL,
914              NULL, NULL, 0, 0,
915              NULL,
916              NULL,
917              0, 0,
918              1, 1,
919              CallbackChangeViaType,
920              (XtPointer)0,
921              (Widget)NULL
922            }
923            ,
924            {
925              NULL,
926              NULL, NULL, 0, 0,
927              NULL,
928              NULL,
929              0, 0,
930              1, 1,
931              CallbackChangeViaType,
932              (XtPointer)0,
933              (Widget)NULL
934            }
935            ,
936            {
937              NULL,
938              NULL, NULL, 0, 0,
939              NULL,
940              NULL,
941              0, 0,
942              1, 1,
943              CallbackChangeViaType,
944              (XtPointer)0,
945              (Widget)NULL
946            }
947            ,
948            {
949              NULL,
950              NULL, NULL, 0, 0,
951              NULL,
952              NULL,
953              0, 0,
954              1, 1,
955              CallbackChangeViaType,
956              (XtPointer)0,
957              (Widget)NULL
958            }
959            ,
960            {
961              NULL,
962              NULL, NULL, 0, 0,
963              NULL,
964              NULL,
965              0, 0,
966              1, 1,
967              CallbackChangeViaType,
968              (XtPointer)0,
969              (Widget)NULL
970            }
971            ,
972            {
973              NULL,
974              NULL, NULL, 0, 0,
975              NULL,
976              NULL,
977              0, 0,
978              1, 1,
979              CallbackChangeViaType,
980              (XtPointer)0,
981              (Widget)NULL
982            }
983            ,
984            {
985              NULL,
986              NULL, NULL, 0, 0,
987              NULL,
988              NULL,
989              0, 0,
990              1, 1,
991              CallbackChangeViaType,
992              (XtPointer)0,
993              (Widget)NULL
994            }
995            ,
996            {
997              "Name",
998              NULL, NULL, 0, 0,
999              NULL,
1000              NULL,
1001              0, 0,
1002              1, 1,
1003              CallbackChangeViaName,
1004              (XtPointer)NULL,
1005              (Widget)NULL
1006            }
1007            ,
1008            {
1009              "Close",
1010              NULL, NULL, 0, 0,
1011              NULL,
1012              NULL,
1013              0, 0,
1014              1, 1,
1015              CallbackChangeViaClose,
1016              (XtPointer)NULL,
1017              (Widget)NULL
1018            }
1019          };
1020 
1021    GraalPanelItem GraalCreateViaPanel  =
1022 
1023          {
1024            "Via",
1025            1,
1026            0,
1027            GRAAL_CREATE_VIA_X,
1028            GRAAL_CREATE_VIA_Y,
1029            100,
1030            300,
1031            1,
1032            MBK_MAX_VIA + 2,
1033            (Widget)NULL,
1034            (Widget)NULL,
1035            (Widget)NULL,
1036            (Widget)NULL,
1037            MBK_MAX_VIA + 2,
1038            GraalCreateViaButton
1039          };
1040 
1041    int GraalCreateViaDefaultValues[ 5 ] =
1042 
1043          {
1044            GRAAL_CREATE_VIA_X,
1045            GRAAL_CREATE_VIA_Y,
1046            100, 300, 0
1047          };
1048 
1049 /*------------------------------------------------------------\
1050 |                                                             |
1051 |                          Big Via Panel                      |
1052 |                                                             |
1053 \------------------------------------------------------------*/
1054 
1055    static GraalPanelButtonItem GraalCreateBigViaButton[ MBK_MAX_VIA + 2 ] =
1056 
1057          {
1058            {
1059              NULL,
1060              NULL, NULL, 0, 0,
1061              NULL,
1062              NULL,
1063              0, 0,
1064              1, 1,
1065              CallbackChangeBigViaType,
1066              (XtPointer)0,
1067              (Widget)NULL
1068            }
1069            ,
1070            {
1071              NULL,
1072              NULL, NULL, 0, 0,
1073              NULL,
1074              NULL,
1075              0, 0,
1076              1, 1,
1077              CallbackChangeBigViaType,
1078              (XtPointer)0,
1079              (Widget)NULL
1080            }
1081            ,
1082            {
1083              NULL,
1084              NULL, NULL, 0, 0,
1085              NULL,
1086              NULL,
1087              0, 0,
1088              1, 1,
1089              CallbackChangeBigViaType,
1090              (XtPointer)0,
1091              (Widget)NULL
1092            }
1093            ,
1094            {
1095              NULL,
1096              NULL, NULL, 0, 0,
1097              NULL,
1098              NULL,
1099              0, 0,
1100              1, 1,
1101              CallbackChangeBigViaType,
1102              (XtPointer)0,
1103              (Widget)NULL
1104            }
1105            ,
1106            {
1107              NULL,
1108              NULL, NULL, 0, 0,
1109              NULL,
1110              NULL,
1111              0, 0,
1112              1, 1,
1113              CallbackChangeBigViaType,
1114              (XtPointer)0,
1115              (Widget)NULL
1116            }
1117            ,
1118            {
1119              NULL,
1120              NULL, NULL, 0, 0,
1121              NULL,
1122              NULL,
1123              0, 0,
1124              1, 1,
1125              CallbackChangeBigViaType,
1126              (XtPointer)0,
1127              (Widget)NULL
1128            }
1129            ,
1130            {
1131              NULL,
1132              NULL, NULL, 0, 0,
1133              NULL,
1134              NULL,
1135              0, 0,
1136              1, 1,
1137              CallbackChangeBigViaType,
1138              (XtPointer)0,
1139              (Widget)NULL
1140            }
1141            ,
1142            {
1143              NULL,
1144              NULL, NULL, 0, 0,
1145              NULL,
1146              NULL,
1147              0, 0,
1148              1, 1,
1149              CallbackChangeBigViaType,
1150              (XtPointer)0,
1151              (Widget)NULL
1152            }
1153            ,
1154            {
1155              NULL,
1156              NULL, NULL, 0, 0,
1157              NULL,
1158              NULL,
1159              0, 0,
1160              1, 1,
1161              CallbackChangeBigViaType,
1162              (XtPointer)0,
1163              (Widget)NULL
1164            }
1165            ,
1166            {
1167              NULL,
1168              NULL, NULL, 0, 0,
1169              NULL,
1170              NULL,
1171              0, 0,
1172              1, 1,
1173              CallbackChangeBigViaType,
1174              (XtPointer)0,
1175              (Widget)NULL
1176            }
1177            ,
1178            {
1179              NULL,
1180              NULL, NULL, 0, 0,
1181              NULL,
1182              NULL,
1183              0, 0,
1184              1, 1,
1185              CallbackChangeBigViaType,
1186              (XtPointer)0,
1187              (Widget)NULL
1188            }
1189            ,
1190            {
1191              NULL,
1192              NULL, NULL, 0, 0,
1193              NULL,
1194              NULL,
1195              0, 0,
1196              1, 1,
1197              CallbackChangeBigViaType,
1198              (XtPointer)0,
1199              (Widget)NULL
1200            }
1201            ,
1202            {
1203              NULL,
1204              NULL, NULL, 0, 0,
1205              NULL,
1206              NULL,
1207              0, 0,
1208              1, 1,
1209              CallbackChangeBigViaType,
1210              (XtPointer)0,
1211              (Widget)NULL
1212            }
1213            ,
1214            {
1215              NULL,
1216              NULL, NULL, 0, 0,
1217              NULL,
1218              NULL,
1219              0, 0,
1220              1, 1,
1221              CallbackChangeBigViaType,
1222              (XtPointer)0,
1223              (Widget)NULL
1224            }
1225            ,
1226            {
1227              NULL,
1228              NULL, NULL, 0, 0,
1229              NULL,
1230              NULL,
1231              0, 0,
1232              1, 1,
1233              CallbackChangeBigViaType,
1234              (XtPointer)0,
1235              (Widget)NULL
1236            }
1237            ,
1238            {
1239              NULL,
1240              NULL, NULL, 0, 0,
1241              NULL,
1242              NULL,
1243              0, 0,
1244              1, 1,
1245              CallbackChangeBigViaType,
1246              (XtPointer)0,
1247              (Widget)NULL
1248            }
1249            ,
1250            {
1251              NULL,
1252              NULL, NULL, 0, 0,
1253              NULL,
1254              NULL,
1255              0, 0,
1256              1, 1,
1257              CallbackChangeBigViaType,
1258              (XtPointer)0,
1259              (Widget)NULL
1260            }
1261            ,
1262            {
1263              NULL,
1264              NULL, NULL, 0, 0,
1265              NULL,
1266              NULL,
1267              0, 0,
1268              1, 1,
1269              CallbackChangeBigViaType,
1270              (XtPointer)0,
1271              (Widget)NULL
1272            }
1273            ,
1274            {
1275              NULL,
1276              NULL, NULL, 0, 0,
1277              NULL,
1278              NULL,
1279              0, 0,
1280              1, 1,
1281              CallbackChangeBigViaType,
1282              (XtPointer)0,
1283              (Widget)NULL
1284            }
1285            ,
1286            {
1287              NULL,
1288              NULL, NULL, 0, 0,
1289              NULL,
1290              NULL,
1291              0, 0,
1292              1, 1,
1293              CallbackChangeBigViaType,
1294              (XtPointer)0,
1295              (Widget)NULL
1296            }
1297            ,
1298            {
1299              NULL,
1300              NULL, NULL, 0, 0,
1301              NULL,
1302              NULL,
1303              0, 0,
1304              1, 1,
1305              CallbackChangeBigViaType,
1306              (XtPointer)0,
1307              (Widget)NULL
1308            }
1309            ,
1310            {
1311              NULL,
1312              NULL, NULL, 0, 0,
1313              NULL,
1314              NULL,
1315              0, 0,
1316              1, 1,
1317              CallbackChangeBigViaType,
1318              (XtPointer)0,
1319              (Widget)NULL
1320            }
1321            ,
1322            {
1323              NULL,
1324              NULL, NULL, 0, 0,
1325              NULL,
1326              NULL,
1327              0, 0,
1328              1, 1,
1329              CallbackChangeBigViaType,
1330              (XtPointer)0,
1331              (Widget)NULL
1332            }
1333            ,
1334            {
1335              NULL,
1336              NULL, NULL, 0, 0,
1337              NULL,
1338              NULL,
1339              0, 0,
1340              1, 1,
1341              CallbackChangeBigViaType,
1342              (XtPointer)0,
1343              (Widget)NULL
1344            }
1345            ,
1346            {
1347              NULL,
1348              NULL, NULL, 0, 0,
1349              NULL,
1350              NULL,
1351              0, 0,
1352              1, 1,
1353              CallbackChangeBigViaType,
1354              (XtPointer)0,
1355              (Widget)NULL
1356            }
1357            ,
1358            {
1359              "Name",
1360              NULL, NULL, 0, 0,
1361              NULL,
1362              NULL,
1363              0, 0,
1364              1, 1,
1365              CallbackChangeBigViaName,
1366              (XtPointer)0,
1367              (Widget)NULL
1368            }
1369            ,
1370            {
1371              "Close",
1372              NULL, NULL, 0, 0,
1373              NULL,
1374              NULL,
1375              0, 0,
1376              1, 1,
1377              CallbackChangeBigViaClose,
1378              (XtPointer)NULL,
1379              (Widget)NULL
1380            }
1381          };
1382 
1383    GraalPanelItem GraalCreateBigViaPanel  =
1384 
1385          {
1386            "BigVia",
1387            1,
1388            0,
1389            GRAAL_CREATE_BIGVIA_X,
1390            GRAAL_CREATE_BIGVIA_Y,
1391            100,
1392            275,
1393            1,
1394            MBK_MAX_VIA + 2,
1395            (Widget)NULL,
1396            (Widget)NULL,
1397            (Widget)NULL,
1398            (Widget)NULL,
1399            MBK_MAX_VIA + 2,
1400            GraalCreateBigViaButton
1401          };
1402 
1403    int GraalCreateBigViaDefaultValues[ 5 ] =
1404 
1405          {
1406            GRAAL_CREATE_BIGVIA_X,
1407            GRAAL_CREATE_BIGVIA_Y,
1408            100, 275, 0
1409          };
1410 
1411 /*------------------------------------------------------------\
1412 |                                                             |
1413 |                        Transistor Panel                     |
1414 |                                                             |
1415 \------------------------------------------------------------*/
1416 
1417    static GraalPanelButtonItem GraalCreateTransistorButton[ MBK_MAX_LAYER + 4 ] =
1418 
1419          {
1420            {
1421              NULL,
1422              NULL, NULL, 0, 0,
1423              NULL,
1424              NULL,
1425              0, 0,
1426              1, 1,
1427              CallbackChangeTransistorType,
1428              (XtPointer)0,
1429              (Widget)NULL
1430            }
1431            ,
1432            {
1433              NULL,
1434              NULL, NULL, 0, 0,
1435              NULL,
1436              NULL,
1437              0, 0,
1438              1, 1,
1439              CallbackChangeTransistorType,
1440              (XtPointer)0,
1441              (Widget)NULL
1442            }
1443            ,
1444            {
1445              NULL,
1446              NULL, NULL, 0, 0,
1447              NULL,
1448              NULL,
1449              0, 0,
1450              1, 1,
1451              CallbackChangeTransistorType,
1452              (XtPointer)0,
1453              (Widget)NULL
1454            }
1455            ,
1456            {
1457              NULL,
1458              NULL, NULL, 0, 0,
1459              NULL,
1460              NULL,
1461              0, 0,
1462              1, 1,
1463              CallbackChangeTransistorType,
1464              (XtPointer)0,
1465              (Widget)NULL
1466            }
1467            ,
1468            {
1469              NULL,
1470              NULL, NULL, 0, 0,
1471              NULL,
1472              NULL,
1473              0, 0,
1474              1, 1,
1475              CallbackChangeTransistorType,
1476              (XtPointer)0,
1477              (Widget)NULL
1478            }
1479            ,
1480            {
1481              NULL,
1482              NULL, NULL, 0, 0,
1483              NULL,
1484              NULL,
1485              0, 0,
1486              1, 1,
1487              CallbackChangeTransistorType,
1488              (XtPointer)0,
1489              (Widget)NULL
1490            }
1491            ,
1492            {
1493              NULL,
1494              NULL, NULL, 0, 0,
1495              NULL,
1496              NULL,
1497              0, 0,
1498              1, 1,
1499              CallbackChangeTransistorType,
1500              (XtPointer)0,
1501              (Widget)NULL
1502            }
1503            ,
1504            {
1505              NULL,
1506              NULL, NULL, 0, 0,
1507              NULL,
1508              NULL,
1509              0, 0,
1510              1, 1,
1511              CallbackChangeTransistorType,
1512              (XtPointer)0,
1513              (Widget)NULL
1514            }
1515            ,
1516            {
1517              NULL,
1518              NULL, NULL, 0, 0,
1519              NULL,
1520              NULL,
1521              0, 0,
1522              1, 1,
1523              CallbackChangeTransistorType,
1524              (XtPointer)0,
1525              (Widget)NULL
1526            }
1527            ,
1528            {
1529              NULL,
1530              NULL, NULL, 0, 0,
1531              NULL,
1532              NULL,
1533              0, 0,
1534              1, 1,
1535              CallbackChangeTransistorType,
1536              (XtPointer)0,
1537              (Widget)NULL
1538            }
1539            ,
1540            {
1541              NULL,
1542              NULL, NULL, 0, 0,
1543              NULL,
1544              NULL,
1545              0, 0,
1546              1, 1,
1547              CallbackChangeTransistorType,
1548              (XtPointer)0,
1549              (Widget)NULL
1550            }
1551            ,
1552            {
1553              NULL,
1554              NULL, NULL, 0, 0,
1555              NULL,
1556              NULL,
1557              0, 0,
1558              1, 1,
1559              CallbackChangeTransistorType,
1560              (XtPointer)0,
1561              (Widget)NULL
1562            }
1563            ,
1564            {
1565              NULL,
1566              NULL, NULL, 0, 0,
1567              NULL,
1568              NULL,
1569              0, 0,
1570              1, 1,
1571              CallbackChangeTransistorType,
1572              (XtPointer)0,
1573              (Widget)NULL
1574            }
1575            ,
1576            {
1577              NULL,
1578              NULL, NULL, 0, 0,
1579              NULL,
1580              NULL,
1581              0, 0,
1582              1, 1,
1583              CallbackChangeTransistorType,
1584              (XtPointer)0,
1585              (Widget)NULL
1586            }
1587            ,
1588            {
1589              NULL,
1590              NULL, NULL, 0, 0,
1591              NULL,
1592              NULL,
1593              0, 0,
1594              1, 1,
1595              CallbackChangeTransistorType,
1596              (XtPointer)0,
1597              (Widget)NULL
1598            }
1599            ,
1600            {
1601              NULL,
1602              NULL, NULL, 0, 0,
1603              NULL,
1604              NULL,
1605              0, 0,
1606              1, 1,
1607              CallbackChangeTransistorType,
1608              (XtPointer)0,
1609              (Widget)NULL
1610            }
1611            ,
1612            {
1613              NULL,
1614              NULL, NULL, 0, 0,
1615              NULL,
1616              NULL,
1617              0, 0,
1618              1, 1,
1619              CallbackChangeTransistorType,
1620              (XtPointer)0,
1621              (Widget)NULL
1622            }
1623            ,
1624            {
1625              NULL,
1626              NULL, NULL, 0, 0,
1627              NULL,
1628              NULL,
1629              0, 0,
1630              1, 1,
1631              CallbackChangeTransistorType,
1632              (XtPointer)0,
1633              (Widget)NULL
1634            }
1635            ,
1636            {
1637              NULL,
1638              NULL, NULL, 0, 0,
1639              NULL,
1640              NULL,
1641              0, 0,
1642              1, 1,
1643              CallbackChangeTransistorType,
1644              (XtPointer)0,
1645              (Widget)NULL
1646            }
1647            ,
1648            {
1649              NULL,
1650              NULL, NULL, 0, 0,
1651              NULL,
1652              NULL,
1653              0, 0,
1654              1, 1,
1655              CallbackChangeTransistorType,
1656              (XtPointer)0,
1657              (Widget)NULL
1658            }
1659            ,
1660            {
1661              NULL,
1662              NULL, NULL, 0, 0,
1663              NULL,
1664              NULL,
1665              0, 0,
1666              1, 1,
1667              CallbackChangeTransistorType,
1668              (XtPointer)0,
1669              (Widget)NULL
1670            }
1671            ,
1672            {
1673              NULL,
1674              NULL, NULL, 0, 0,
1675              NULL,
1676              NULL,
1677              0, 0,
1678              1, 1,
1679              CallbackChangeTransistorType,
1680              (XtPointer)0,
1681              (Widget)NULL
1682            }
1683            ,
1684            {
1685              NULL,
1686              NULL, NULL, 0, 0,
1687              NULL,
1688              NULL,
1689              0, 0,
1690              1, 1,
1691              CallbackChangeTransistorType,
1692              (XtPointer)0,
1693              (Widget)NULL
1694            }
1695            ,
1696            {
1697              NULL,
1698              NULL, NULL, 0, 0,
1699              NULL,
1700              NULL,
1701              0, 0,
1702              1, 1,
1703              CallbackChangeTransistorType,
1704              (XtPointer)0,
1705              (Widget)NULL
1706            }
1707            ,
1708            {
1709              NULL,
1710              NULL, NULL, 0, 0,
1711              NULL,
1712              NULL,
1713              0, 0,
1714              1, 1,
1715              CallbackChangeTransistorType,
1716              (XtPointer)0,
1717              (Widget)NULL
1718            }
1719            ,
1720            {
1721              NULL,
1722              NULL, NULL, 0, 0,
1723              NULL,
1724              NULL,
1725              0, 0,
1726              1, 1,
1727              CallbackChangeTransistorType,
1728              (XtPointer)0,
1729              (Widget)NULL
1730            }
1731            ,
1732            {
1733              NULL,
1734              NULL, NULL, 0, 0,
1735              NULL,
1736              NULL,
1737              0, 0,
1738              1, 1,
1739              CallbackChangeTransistorType,
1740              (XtPointer)0,
1741              (Widget)NULL
1742            }
1743            ,
1744            {
1745              NULL,
1746              NULL, NULL, 0, 0,
1747              NULL,
1748              NULL,
1749              0, 0,
1750              1, 1,
1751              CallbackChangeTransistorType,
1752              (XtPointer)0,
1753              (Widget)NULL
1754            }
1755            ,
1756            {
1757              NULL,
1758              NULL, NULL, 0, 0,
1759              NULL,
1760              NULL,
1761              0, 0,
1762              1, 1,
1763              CallbackChangeTransistorType,
1764              (XtPointer)0,
1765              (Widget)NULL
1766            }
1767            ,
1768            {
1769              NULL,
1770              NULL, NULL, 0, 0,
1771              NULL,
1772              NULL,
1773              0, 0,
1774              1, 1,
1775              CallbackChangeTransistorType,
1776              (XtPointer)0,
1777              (Widget)NULL
1778            }
1779            ,
1780            {
1781              NULL,
1782              NULL, NULL, 0, 0,
1783              NULL,
1784              NULL,
1785              0, 0,
1786              1, 1,
1787              CallbackChangeTransistorType,
1788              (XtPointer)0,
1789              (Widget)NULL
1790            }
1791            ,
1792            {
1793              NULL,
1794              NULL, NULL, 0, 0,
1795              NULL,
1796              NULL,
1797              0, 0,
1798              1, 1,
1799              CallbackChangeTransistorType,
1800              (XtPointer)0,
1801              (Widget)NULL
1802            }
1803            ,
1804            {
1805              NULL,
1806              NULL, NULL, 0, 0,
1807              NULL,
1808              NULL,
1809              0, 0,
1810              1, 1,
1811              CallbackChangeTransistorType,
1812              (XtPointer)0,
1813              (Widget)NULL
1814            }
1815            ,
1816            {
1817              NULL,
1818              NULL, NULL, 0, 0,
1819              NULL,
1820              NULL,
1821              0, 0,
1822              1, 1,
1823              CallbackChangeTransistorType,
1824              (XtPointer)0,
1825              (Widget)NULL
1826            }
1827            ,
1828            {
1829              NULL,
1830              NULL, NULL, 0, 0,
1831              NULL,
1832              NULL,
1833              0, 0,
1834              1, 1,
1835              CallbackChangeTransistorType,
1836              (XtPointer)0,
1837              (Widget)NULL
1838            }
1839            ,
1840            {
1841              NULL,
1842              NULL, NULL, 0, 0,
1843              NULL,
1844              NULL,
1845              0, 0,
1846              1, 1,
1847              CallbackChangeTransistorType,
1848              (XtPointer)0,
1849              (Widget)NULL
1850            }
1851            ,
1852            {
1853              NULL,
1854              NULL, NULL, 0, 0,
1855              NULL,
1856              NULL,
1857              0, 0,
1858              1, 1,
1859              CallbackChangeTransistorType,
1860              (XtPointer)0,
1861              (Widget)NULL
1862            }
1863            ,
1864            {
1865              NULL,
1866              NULL, NULL, 0, 0,
1867              NULL,
1868              NULL,
1869              0, 0,
1870              1, 1,
1871              CallbackChangeTransistorType,
1872              (XtPointer)0,
1873              (Widget)NULL
1874            }
1875            ,
1876            {
1877              NULL,
1878              NULL, NULL, 0, 0,
1879              NULL,
1880              NULL,
1881              0, 0,
1882              1, 1,
1883              CallbackChangeTransistorType,
1884              (XtPointer)0,
1885              (Widget)NULL
1886            }
1887            ,
1888            {
1889              NULL,
1890              NULL, NULL, 0, 0,
1891              NULL,
1892              NULL,
1893              0, 0,
1894              1, 1,
1895              CallbackChangeTransistorType,
1896              (XtPointer)0,
1897              (Widget)NULL
1898            }
1899            ,
1900            {
1901              NULL,
1902              NULL, NULL, 0, 0,
1903              NULL,
1904              NULL,
1905              0, 0,
1906              1, 1,
1907              CallbackChangeTransistorType,
1908              (XtPointer)0,
1909              (Widget)NULL
1910            }
1911            ,
1912            {
1913              NULL,
1914              NULL, NULL, 0, 0,
1915              NULL,
1916              NULL,
1917              0, 0,
1918              1, 1,
1919              CallbackChangeTransistorType,
1920              (XtPointer)0,
1921              (Widget)NULL
1922            }
1923            ,
1924            {
1925              NULL,
1926              NULL, NULL, 0, 0,
1927              NULL,
1928              NULL,
1929              0, 0,
1930              1, 1,
1931              CallbackChangeTransistorType,
1932              (XtPointer)0,
1933              (Widget)NULL
1934            }
1935            ,
1936            {
1937              "Width",
1938              NULL, NULL, 0, 0,
1939              NULL,
1940              NULL,
1941              0, 0,
1942              2, 1,
1943              CallbackChangeTransistorWidth,
1944              (XtPointer) NULL,
1945              (Widget)NULL
1946            }
1947            ,
1948            {
1949              "Name",
1950              NULL, NULL, 0, 0,
1951              NULL,
1952              NULL,
1953              0, 0,
1954              2, 1,
1955              CallbackChangeTransistorName,
1956              (XtPointer)NULL,
1957              (Widget)NULL
1958            }
1959            ,
1960            {
1961              "Simple",
1962              NULL, NULL, 0, 0,
1963              NULL,
1964              NULL,
1965              0, 0,
1966              2, 1,
1967              CallbackChangeTransistorWire,
1968              (XtPointer)NULL,
1969              (Widget)NULL
1970            }
1971            ,
1972            {
1973              "Close",
1974              NULL, NULL, 0, 0,
1975              NULL,
1976              NULL,
1977              0, 0,
1978              2, 1,
1979              CallbackChangeTransistorClose,
1980              (XtPointer)NULL,
1981              (Widget)NULL
1982            }
1983          };
1984 
1985    GraalPanelItem GraalCreateTransistorPanel  =
1986 
1987          {
1988            "Transistor",
1989            1,
1990            0,
1991            GRAAL_CREATE_TRANSISTOR_X,
1992            GRAAL_CREATE_TRANSISTOR_Y,
1993            100,
1994            300,
1995            2,
1996            ( MBK_MAX_LAYER + 4 ) / 2,
1997            (Widget)NULL,
1998            (Widget)NULL,
1999            (Widget)NULL,
2000            (Widget)NULL,
2001            MBK_MAX_LAYER + 4,
2002            GraalCreateTransistorButton
2003          };
2004 
2005    int GraalCreateTransistorDefaultValues[ 5 ] =
2006 
2007          {
2008            GRAAL_CREATE_TRANSISTOR_X,
2009            GRAAL_CREATE_TRANSISTOR_Y,
2010            100, 300, 0
2011          };
2012 
2013 /*------------------------------------------------------------\
2014 |                                                             |
2015 |                       Connector Panel                       |
2016 |                                                             |
2017 \------------------------------------------------------------*/
2018 
2019    static GraalPanelButtonItem GraalCreateConnectorButton[MBK_MAX_LAYER+MBK_MAX_ORIENT+2] =
2020 
2021          {
2022            {
2023              NULL,
2024              NULL, NULL, 0, 0,
2025              NULL,
2026              NULL,
2027              0, 0,
2028              1, 1,
2029              CallbackChangeConnectorLayer,
2030              (XtPointer)0,
2031              (Widget)NULL
2032            }
2033            ,
2034            {
2035              NULL,
2036              NULL, NULL, 0, 0,
2037              NULL,
2038              NULL,
2039              0, 0,
2040              1, 1,
2041              CallbackChangeConnectorLayer,
2042              (XtPointer)0,
2043              (Widget)NULL
2044            }
2045            ,
2046            {
2047              NULL,
2048              NULL, NULL, 0, 0,
2049              NULL,
2050              NULL,
2051              0, 0,
2052              1, 1,
2053              CallbackChangeConnectorLayer,
2054              (XtPointer)0,
2055              (Widget)NULL
2056            }
2057            ,
2058            {
2059              NULL,
2060              NULL, NULL, 0, 0,
2061              NULL,
2062              NULL,
2063              0, 0,
2064              1, 1,
2065              CallbackChangeConnectorLayer,
2066              (XtPointer)0,
2067              (Widget)NULL
2068            }
2069            ,
2070            {
2071              NULL,
2072              NULL, NULL, 0, 0,
2073              NULL,
2074              NULL,
2075              0, 0,
2076              1, 1,
2077              CallbackChangeConnectorLayer,
2078              (XtPointer)0,
2079              (Widget)NULL
2080            }
2081            ,
2082            {
2083              NULL,
2084              NULL, NULL, 0, 0,
2085              NULL,
2086              NULL,
2087              0, 0,
2088              1, 1,
2089              CallbackChangeConnectorLayer,
2090              (XtPointer)0,
2091              (Widget)NULL
2092            }
2093            ,
2094            {
2095              NULL,
2096              NULL, NULL, 0, 0,
2097              NULL,
2098              NULL,
2099              0, 0,
2100              1, 1,
2101              CallbackChangeConnectorLayer,
2102              (XtPointer)0,
2103              (Widget)NULL
2104            }
2105            ,
2106            {
2107              NULL,
2108              NULL, NULL, 0, 0,
2109              NULL,
2110              NULL,
2111              0, 0,
2112              1, 1,
2113              CallbackChangeConnectorLayer,
2114              (XtPointer)0,
2115              (Widget)NULL
2116            }
2117            ,
2118            {
2119              NULL,
2120              NULL, NULL, 0, 0,
2121              NULL,
2122              NULL,
2123              0, 0,
2124              1, 1,
2125              CallbackChangeConnectorLayer,
2126              (XtPointer)0,
2127              (Widget)NULL
2128            }
2129            ,
2130            {
2131              NULL,
2132              NULL, NULL, 0, 0,
2133              NULL,
2134              NULL,
2135              0, 0,
2136              1, 1,
2137              CallbackChangeConnectorLayer,
2138              (XtPointer)0,
2139              (Widget)NULL
2140            }
2141            ,
2142            {
2143              NULL,
2144              NULL, NULL, 0, 0,
2145              NULL,
2146              NULL,
2147              0, 0,
2148              1, 1,
2149              CallbackChangeConnectorLayer,
2150              (XtPointer)0,
2151              (Widget)NULL
2152            }
2153            ,
2154            {
2155              NULL,
2156              NULL, NULL, 0, 0,
2157              NULL,
2158              NULL,
2159              0, 0,
2160              1, 1,
2161              CallbackChangeConnectorLayer,
2162              (XtPointer)0,
2163              (Widget)NULL
2164            }
2165            ,
2166            {
2167              NULL,
2168              NULL, NULL, 0, 0,
2169              NULL,
2170              NULL,
2171              0, 0,
2172              1, 1,
2173              CallbackChangeConnectorLayer,
2174              (XtPointer)0,
2175              (Widget)NULL
2176            }
2177            ,
2178            {
2179              NULL,
2180              NULL, NULL, 0, 0,
2181              NULL,
2182              NULL,
2183              0, 0,
2184              1, 1,
2185              CallbackChangeConnectorLayer,
2186              (XtPointer)0,
2187              (Widget)NULL
2188            }
2189            ,
2190            {
2191              NULL,
2192              NULL, NULL, 0, 0,
2193              NULL,
2194              NULL,
2195              0, 0,
2196              1, 1,
2197              CallbackChangeConnectorLayer,
2198              (XtPointer)0,
2199              (Widget)NULL
2200            }
2201            ,
2202            {
2203              NULL,
2204              NULL, NULL, 0, 0,
2205              NULL,
2206              NULL,
2207              0, 0,
2208              1, 1,
2209              CallbackChangeConnectorLayer,
2210              (XtPointer)0,
2211              (Widget)NULL
2212            }
2213            ,
2214            {
2215              NULL,
2216              NULL, NULL, 0, 0,
2217              NULL,
2218              NULL,
2219              0, 0,
2220              1, 1,
2221              CallbackChangeConnectorLayer,
2222              (XtPointer)0,
2223              (Widget)NULL
2224            }
2225            ,
2226            {
2227              NULL,
2228              NULL, NULL, 0, 0,
2229              NULL,
2230              NULL,
2231              0, 0,
2232              1, 1,
2233              CallbackChangeConnectorLayer,
2234              (XtPointer)0,
2235              (Widget)NULL
2236            }
2237            ,
2238            {
2239              NULL,
2240              NULL, NULL, 0, 0,
2241              NULL,
2242              NULL,
2243              0, 0,
2244              1, 1,
2245              CallbackChangeConnectorLayer,
2246              (XtPointer)0,
2247              (Widget)NULL
2248            }
2249            ,
2250            {
2251              NULL,
2252              NULL, NULL, 0, 0,
2253              NULL,
2254              NULL,
2255              0, 0,
2256              1, 1,
2257              CallbackChangeConnectorLayer,
2258              (XtPointer)0,
2259              (Widget)NULL
2260            }
2261            ,
2262            {
2263              NULL,
2264              NULL, NULL, 0, 0,
2265              NULL,
2266              NULL,
2267              0, 0,
2268              1, 1,
2269              CallbackChangeConnectorLayer,
2270              (XtPointer)0,
2271              (Widget)NULL
2272            }
2273            ,
2274            {
2275              NULL,
2276              NULL, NULL, 0, 0,
2277              NULL,
2278              NULL,
2279              0, 0,
2280              1, 1,
2281              CallbackChangeConnectorLayer,
2282              (XtPointer)0,
2283              (Widget)NULL
2284            }
2285            ,
2286            {
2287              NULL,
2288              NULL, NULL, 0, 0,
2289              NULL,
2290              NULL,
2291              0, 0,
2292              1, 1,
2293              CallbackChangeConnectorLayer,
2294              (XtPointer)0,
2295              (Widget)NULL
2296            }
2297            ,
2298            {
2299              NULL,
2300              NULL, NULL, 0, 0,
2301              NULL,
2302              NULL,
2303              0, 0,
2304              1, 1,
2305              CallbackChangeConnectorLayer,
2306              (XtPointer)0,
2307              (Widget)NULL
2308            }
2309            ,
2310            {
2311              NULL,
2312              NULL, NULL, 0, 0,
2313              NULL,
2314              NULL,
2315              0, 0,
2316              1, 1,
2317              CallbackChangeConnectorLayer,
2318              (XtPointer)0,
2319              (Widget)NULL
2320            }
2321            ,
2322            {
2323              NULL,
2324              NULL, NULL, 0, 0,
2325              NULL,
2326              NULL,
2327              0, 0,
2328              1, 1,
2329              CallbackChangeConnectorLayer,
2330              (XtPointer)0,
2331              (Widget)NULL
2332            }
2333            ,
2334            {
2335              NULL,
2336              NULL, NULL, 0, 0,
2337              NULL,
2338              NULL,
2339              0, 0,
2340              1, 1,
2341              CallbackChangeConnectorLayer,
2342              (XtPointer)0,
2343              (Widget)NULL
2344            }
2345            ,
2346            {
2347              NULL,
2348              NULL, NULL, 0, 0,
2349              NULL,
2350              NULL,
2351              0, 0,
2352              1, 1,
2353              CallbackChangeConnectorLayer,
2354              (XtPointer)0,
2355              (Widget)NULL
2356            }
2357            ,
2358            {
2359              NULL,
2360              NULL, NULL, 0, 0,
2361              NULL,
2362              NULL,
2363              0, 0,
2364              1, 1,
2365              CallbackChangeConnectorLayer,
2366              (XtPointer)0,
2367              (Widget)NULL
2368            }
2369            ,
2370            {
2371              NULL,
2372              NULL, NULL, 0, 0,
2373              NULL,
2374              NULL,
2375              0, 0,
2376              1, 1,
2377              CallbackChangeConnectorLayer,
2378              (XtPointer)0,
2379              (Widget)NULL
2380            }
2381            ,
2382            {
2383              NULL,
2384              NULL, NULL, 0, 0,
2385              NULL,
2386              NULL,
2387              0, 0,
2388              1, 1,
2389              CallbackChangeConnectorLayer,
2390              (XtPointer)0,
2391              (Widget)NULL
2392            }
2393            ,
2394            {
2395              NULL,
2396              NULL, NULL, 0, 0,
2397              NULL,
2398              NULL,
2399              0, 0,
2400              1, 1,
2401              CallbackChangeConnectorLayer,
2402              (XtPointer)0,
2403              (Widget)NULL
2404            }
2405            ,
2406            {
2407              NULL,
2408              NULL, NULL, 0, 0,
2409              NULL,
2410              NULL,
2411              0, 0,
2412              1, 1,
2413              CallbackChangeConnectorLayer,
2414              (XtPointer)0,
2415              (Widget)NULL
2416            }
2417            ,
2418            {
2419              NULL,
2420              NULL, NULL, 0, 0,
2421              NULL,
2422              NULL,
2423              0, 0,
2424              1, 1,
2425              CallbackChangeConnectorLayer,
2426              (XtPointer)0,
2427              (Widget)NULL
2428            }
2429            ,
2430            {
2431              NULL,
2432              NULL, NULL, 0, 0,
2433              NULL,
2434              NULL,
2435              0, 0,
2436              1, 1,
2437              CallbackChangeConnectorLayer,
2438              (XtPointer)0,
2439              (Widget)NULL
2440            }
2441            ,
2442            {
2443              NULL,
2444              NULL, NULL, 0, 0,
2445              NULL,
2446              NULL,
2447              0, 0,
2448              1, 1,
2449              CallbackChangeConnectorLayer,
2450              (XtPointer)0,
2451              (Widget)NULL
2452            }
2453            ,
2454            {
2455              NULL,
2456              NULL, NULL, 0, 0,
2457              NULL,
2458              NULL,
2459              0, 0,
2460              1, 1,
2461              CallbackChangeConnectorLayer,
2462              (XtPointer)0,
2463              (Widget)NULL
2464            }
2465            ,
2466            {
2467              NULL,
2468              NULL, NULL, 0, 0,
2469              NULL,
2470              NULL,
2471              0, 0,
2472              1, 1,
2473              CallbackChangeConnectorLayer,
2474              (XtPointer)0,
2475              (Widget)NULL
2476            }
2477            ,
2478            {
2479              NULL,
2480              NULL, NULL, 0, 0,
2481              NULL,
2482              NULL,
2483              0, 0,
2484              1, 1,
2485              CallbackChangeConnectorLayer,
2486              (XtPointer)0,
2487              (Widget)NULL
2488            }
2489            ,
2490            {
2491              NULL,
2492              NULL, NULL, 0, 0,
2493              NULL,
2494              NULL,
2495              0, 0,
2496              1, 1,
2497              CallbackChangeConnectorLayer,
2498              (XtPointer)0,
2499              (Widget)NULL
2500            }
2501            ,
2502            {
2503              NULL,
2504              NULL, NULL, 0, 0,
2505              NULL,
2506              NULL,
2507              0, 0,
2508              1, 1,
2509              CallbackChangeConnectorLayer,
2510              (XtPointer)0,
2511              (Widget)NULL
2512            }
2513            ,
2514            {
2515              NULL,
2516              NULL, NULL, 0, 0,
2517              NULL,
2518              NULL,
2519              0, 0,
2520              1, 1,
2521              CallbackChangeConnectorLayer,
2522              (XtPointer)0,
2523              (Widget)NULL
2524            }
2525            ,
2526            {
2527              NULL,
2528              NULL, NULL, 0, 0,
2529              NULL,
2530              NULL,
2531              0, 0,
2532              1, 1,
2533              CallbackChangeConnectorLayer,
2534              (XtPointer)0,
2535              (Widget)NULL
2536            }
2537            ,
2538            {
2539              "Width",
2540              NULL, NULL, 0, 0,
2541              NULL,
2542              NULL,
2543              0, 0,
2544              2, 1,
2545              CallbackChangeConnectorWidth,
2546              (XtPointer)NULL,
2547              (Widget)NULL
2548            }
2549            ,
2550            {
2551              NULL,
2552              NULL, NULL, 0, 0,
2553              NULL,
2554              NULL,
2555              0, 0,
2556              2, 1,
2557              CallbackChangeConnectorOrient,
2558              (XtPointer)0,
2559              (Widget)NULL
2560            }
2561            ,
2562            {
2563              NULL,
2564              NULL, NULL, 0, 0,
2565              NULL,
2566              NULL,
2567              0, 0,
2568              2, 1,
2569              CallbackChangeConnectorOrient,
2570              (XtPointer)0,
2571              (Widget)NULL
2572            }
2573            ,
2574            {
2575              NULL,
2576              NULL, NULL, 0, 0,
2577              NULL,
2578              NULL,
2579              0, 0,
2580              2, 1,
2581              CallbackChangeConnectorOrient,
2582              (XtPointer)0,
2583              (Widget)NULL
2584            }
2585            ,
2586            {
2587              NULL,
2588              NULL, NULL, 0, 0,
2589              NULL,
2590              NULL,
2591              0, 0,
2592              2, 1,
2593              CallbackChangeConnectorOrient,
2594              (XtPointer)0,
2595              (Widget)NULL
2596            }
2597            ,
2598            {
2599              "Close",
2600              NULL, NULL, 0, 0,
2601              NULL,
2602              NULL,
2603              0, 0,
2604              2, 1,
2605              CallbackChangeConnectorClose,
2606              (XtPointer)NULL,
2607              (Widget)NULL
2608            }
2609          };
2610 
2611    GraalPanelItem GraalCreateConnectorPanel  =
2612 
2613          {
2614            "Connector",
2615            1,
2616            0,
2617            GRAAL_CREATE_CONNECTOR_X,
2618            GRAAL_CREATE_CONNECTOR_Y,
2619            100,
2620            325,
2621            2,
2622            (MBK_MAX_LAYER+MBK_MAX_ORIENT+2)/2,
2623            (Widget)NULL,
2624            (Widget)NULL,
2625            (Widget)NULL,
2626            (Widget)NULL,
2627            MBK_MAX_LAYER+MBK_MAX_ORIENT+2,
2628            GraalCreateConnectorButton
2629          };
2630 
2631    int GraalCreateConnectorDefaultValues[ 5 ] =
2632 
2633          {
2634            GRAAL_CREATE_CONNECTOR_X,
2635            GRAAL_CREATE_CONNECTOR_Y,
2636            100, 325, 0
2637          };
2638 
2639 /*------------------------------------------------------------\
2640 |                                                             |
2641 |                        Reference Panel                      |
2642 |                                                             |
2643 \------------------------------------------------------------*/
2644 
2645    static GraalPanelButtonItem GraalCreateReferenceButton[ MBK_MAX_REFERENCE + 1 ] =
2646 
2647          {
2648            {
2649              NULL,
2650              NULL, NULL, 0, 0,
2651              NULL,
2652              NULL,
2653              0, 0,
2654              1, 1,
2655              CallbackChangeReferenceType,
2656              (XtPointer)0,
2657              (Widget)NULL
2658            }
2659            ,
2660            {
2661              NULL,
2662              NULL, NULL, 0, 0,
2663              NULL,
2664              NULL,
2665              0, 0,
2666              1, 1,
2667              CallbackChangeReferenceType,
2668              (XtPointer)0,
2669              (Widget)NULL
2670            }
2671            ,
2672            {
2673              "Close",
2674              NULL, NULL, 0, 0,
2675              NULL,
2676              NULL,
2677              0, 0,
2678              1, 1,
2679              CallbackChangeReferenceClose,
2680              (XtPointer)NULL,
2681              (Widget)NULL
2682            }
2683         };
2684 
2685    GraalPanelItem GraalCreateReferencePanel  =
2686 
2687          {
2688            "Reference",
2689            1,
2690            0,
2691            GRAAL_CREATE_REFERENCE_X,
2692            GRAAL_CREATE_REFERENCE_Y,
2693            100,
2694            75,
2695            1,
2696            MBK_MAX_REFERENCE + 1,
2697            (Widget)NULL,
2698            (Widget)NULL,
2699            (Widget)NULL,
2700            (Widget)NULL,
2701            MBK_MAX_REFERENCE + 1,
2702            GraalCreateReferenceButton
2703          };
2704 
2705    int GraalCreateReferenceDefaultValues[ 5 ] =
2706 
2707          {
2708            GRAAL_CREATE_REFERENCE_X,
2709            GRAAL_CREATE_REFERENCE_Y,
2710            100, 75, 0
2711          };
2712 
2713 /*------------------------------------------------------------\
2714 |                                                             |
2715 |                        Instance  Panel                      |
2716 |                                                             |
2717 \------------------------------------------------------------*/
2718 
2719    static GraalPanelButtonItem GraalCreateInstanceButton[ MBK_MAX_SYMMETRY + 1 ] =
2720 
2721          {
2722            {
2723              NULL,
2724              NULL, NULL, 0, 0,
2725              NULL,
2726              NULL,
2727              0, 0,
2728              1, 1,
2729              CallbackChangeInstanceSym,
2730              (XtPointer)0,
2731              (Widget)NULL
2732            }
2733            ,
2734            {
2735              NULL,
2736              NULL, NULL, 0, 0,
2737              NULL,
2738              NULL,
2739              0, 0,
2740              1, 1,
2741              CallbackChangeInstanceSym,
2742              (XtPointer)0,
2743              (Widget)NULL
2744            }
2745            ,
2746            {
2747              NULL,
2748              NULL, NULL, 0, 0,
2749              NULL,
2750              NULL,
2751              0, 0,
2752              1, 1,
2753              CallbackChangeInstanceSym,
2754              (XtPointer)0,
2755              (Widget)NULL
2756            }
2757            ,
2758            {
2759              NULL,
2760              NULL, NULL, 0, 0,
2761              NULL,
2762              NULL,
2763              0, 0,
2764              1, 1,
2765              CallbackChangeInstanceSym,
2766              (XtPointer)0,
2767              (Widget)NULL
2768            }
2769            ,
2770            {
2771              NULL,
2772              NULL, NULL, 0, 0,
2773              NULL,
2774              NULL,
2775              0, 0,
2776              1, 1,
2777              CallbackChangeInstanceSym,
2778              (XtPointer)0,
2779              (Widget)NULL
2780            }
2781            ,
2782            {
2783              NULL,
2784              NULL, NULL, 0, 0,
2785              NULL,
2786              NULL,
2787              0, 0,
2788              1, 1,
2789              CallbackChangeInstanceSym,
2790              (XtPointer)0,
2791              (Widget)NULL
2792            }
2793            ,
2794            {
2795              NULL,
2796              NULL, NULL, 0, 0,
2797              NULL,
2798              NULL,
2799              0, 0,
2800              1, 1,
2801              CallbackChangeInstanceSym,
2802              (XtPointer)0,
2803              (Widget)NULL
2804            }
2805            ,
2806            {
2807              NULL,
2808              NULL, NULL, 0, 0,
2809              NULL,
2810              NULL,
2811              0, 0,
2812              1, 1,
2813              CallbackChangeInstanceSym,
2814              (XtPointer)0,
2815              (Widget)NULL
2816            }
2817            ,
2818            {
2819              "Close",
2820              NULL, NULL, 0, 0,
2821              NULL,
2822              NULL,
2823              0, 0,
2824              1, 1,
2825              CallbackChangeInstanceClose,
2826              (XtPointer)NULL,
2827              (Widget)NULL
2828            }
2829         };
2830 
2831    GraalPanelItem GraalCreateInstancePanel  =
2832 
2833          {
2834            "Instance",
2835            1,
2836            0,
2837            GRAAL_CREATE_INSTANCE_X,
2838            GRAAL_CREATE_INSTANCE_Y,
2839            100,
2840            225,
2841            1,
2842            MBK_MAX_SYMMETRY + 1,
2843            (Widget)NULL,
2844            (Widget)NULL,
2845            (Widget)NULL,
2846            (Widget)NULL,
2847            MBK_MAX_SYMMETRY + 1,
2848            GraalCreateInstanceButton
2849          };
2850 
2851    int GraalCreateInstanceDefaultValues[ 5 ] =
2852 
2853          {
2854            GRAAL_CREATE_INSTANCE_X,
2855            GRAAL_CREATE_INSTANCE_Y,
2856            100, 225, 0
2857          };
2858 
2859 /*------------------------------------------------------------\
2860 |                                                             |
2861 |                          Functions                          |
2862 |                                                             |
2863 \------------------------------------------------------------*/
2864 /*------------------------------------------------------------\
2865 |                                                             |
2866 |                    GraalBuildPanelCreate                    |
2867 |                                                             |
2868 \------------------------------------------------------------*/
2869 
GraalBuildPanelCreate()2870 void GraalBuildPanelCreate()
2871 
2872 {
2873   GraalPanelButtonItem *Button;
2874   long                  Index;
2875   unsigned char         X1;
2876   unsigned char         Y1;
2877 
2878   X1 = 0;
2879   Y1 = 0;
2880 
2881   for ( Index = 0; Index < MBK_MAX_LAYER; Index++ )
2882   {
2883     if ( GRAAL_SEGMENT_NAME_TABLE[ Index ][ 0 ] != (char *)NULL )
2884     {
2885       Button = &GraalCreateSegmentButton[ Index ];
2886 
2887       Button->LABEL      = GRAAL_SEGMENT_NAME_TABLE[ Index ][ 0 ];
2888       Button->FOREGROUND = GRAAL_SEGMENT_NAME_TABLE[ Index ][ 1 ];
2889       Button->BACKGROUND = GRAAL_SEGMENT_NAME_TABLE[ Index ][ 2 ];
2890 
2891       Button->X        = X1;
2892       Button->Y        = Y1;
2893       Button->CALLDATA = (XtPointer)Index;
2894 
2895       if ( X1 == 1 )
2896       {
2897         X1 = 0; Y1 = Y1 + 1;
2898       }
2899       else
2900       {
2901         X1 = X1 + 1;
2902       }
2903     }
2904   }
2905 
2906   if ( X1 == 1 ) Y1 = Y1 + 1;
2907 
2908   for ( Index = 0; Index < 4; Index++ )
2909   {
2910     GraalCreateSegmentButton[ MBK_MAX_LAYER + Index ].Y = Y1;
2911     Y1 = Y1 + 1;
2912   }
2913 
2914   GraalCreateSegmentPanel.ROW = Y1;
2915   GraalCreateSegmentDefaultValues[ 3 ] = Y1 * 25;
2916 
2917   Y1 = 0;
2918 
2919   for ( Index = 0; Index < MBK_MAX_VIA; Index++ )
2920   {
2921     if ( GRAAL_VIA_NAME_TABLE[ Index ][ 0 ] != (char *)NULL )
2922     {
2923       Button = &GraalCreateViaButton[ Index ];
2924 
2925       Button->LABEL      = GRAAL_VIA_NAME_TABLE[ Index ][ 0 ];
2926       Button->FOREGROUND = GRAAL_VIA_NAME_TABLE[ Index ][ 1 ];
2927       Button->BACKGROUND = GRAAL_VIA_NAME_TABLE[ Index ][ 2 ];
2928 
2929       Button->Y        = Y1;
2930       Button->CALLDATA = (XtPointer)Index;
2931 
2932       Y1 = Y1 + 1;
2933     }
2934   }
2935 
2936   GraalCreateViaButton[ MBK_MAX_VIA     ].Y = Y1;
2937   Y1 = Y1 + 1;
2938 
2939   GraalCreateViaButton[ MBK_MAX_VIA + 1 ].Y = Y1;
2940   Y1 = Y1 + 1;
2941 
2942   GraalCreateViaPanel.ROW = Y1;
2943   GraalCreateViaDefaultValues[ 3 ] = Y1 * 25;
2944 
2945   Y1 = 0;
2946 
2947   for ( Index = 0; Index < MBK_MAX_VIA; Index++ )
2948   {
2949     if ( GRAAL_BIGVIA_NAME_TABLE[ Index ][ 0 ] != (char *)NULL )
2950     {
2951       Button = &GraalCreateBigViaButton[ Index ];
2952 
2953       Button->LABEL      = GRAAL_BIGVIA_NAME_TABLE[ Index ][ 0 ];
2954       Button->FOREGROUND = GRAAL_BIGVIA_NAME_TABLE[ Index ][ 1 ];
2955       Button->BACKGROUND = GRAAL_BIGVIA_NAME_TABLE[ Index ][ 2 ];
2956 
2957       Button->Y        = Y1;
2958       Button->CALLDATA = (XtPointer)Index;
2959 
2960       Y1 = Y1 + 1;
2961     }
2962   }
2963 
2964   GraalCreateBigViaButton[ MBK_MAX_VIA     ].Y = Y1;
2965   Y1 = Y1 + 1;
2966 
2967   GraalCreateBigViaButton[ MBK_MAX_VIA + 1 ].Y = Y1;
2968   Y1 = Y1 + 1;
2969 
2970   GraalCreateBigViaPanel.ROW = Y1;
2971   GraalCreateBigViaDefaultValues[ 3 ] = Y1 * 25;
2972 
2973   X1 = 0;
2974   Y1 = 0;
2975 
2976   for ( Index = 0; Index < MBK_MAX_LAYER; Index++ )
2977   {
2978     if ( GRAAL_TRANSISTOR_NAME_TABLE[ Index ][ 0 ] != (char *)NULL )
2979     {
2980       Button = &GraalCreateTransistorButton[ Index ];
2981 
2982       Button->LABEL      = GRAAL_TRANSISTOR_NAME_TABLE[ Index ][ 0 ];
2983       Button->FOREGROUND = GRAAL_TRANSISTOR_NAME_TABLE[ Index ][ 1 ];
2984       Button->BACKGROUND = GRAAL_TRANSISTOR_NAME_TABLE[ Index ][ 2 ];
2985 
2986 
2987       Button->X        = X1;
2988       Button->Y        = Y1;
2989       Button->CALLDATA = (XtPointer)Index;
2990 
2991       if ( X1 == 1 )
2992       {
2993         X1 = 0; Y1 = Y1 + 1;
2994       }
2995       else
2996       {
2997         X1 = X1 + 1;
2998       }
2999     }
3000   }
3001 
3002   if ( X1 == 1 ) Y1 = Y1 + 1;
3003 
3004   for ( Index = 0; Index < 4; Index++ )
3005   {
3006     GraalCreateTransistorButton[ MBK_MAX_LAYER + Index ].Y = Y1;
3007     Y1 = Y1 + 1;
3008   }
3009 
3010   GraalCreateTransistorPanel.ROW = Y1;
3011   GraalCreateTransistorDefaultValues[ 3 ] = Y1 * 25;
3012 
3013   X1 = 0;
3014   Y1 = 0;
3015 
3016   for ( Index = 0; Index < MBK_MAX_LAYER; Index++ )
3017   {
3018     if ( GRAAL_CONNECTOR_NAME_TABLE[ Index ][ 0 ] != (char *)NULL )
3019     {
3020       Button = &GraalCreateConnectorButton[ Index ];
3021 
3022       Button->LABEL      = GRAAL_CONNECTOR_NAME_TABLE[ Index ][ 0 ];
3023       Button->FOREGROUND = GRAAL_CONNECTOR_NAME_TABLE[ Index ][ 1 ];
3024       Button->BACKGROUND = GRAAL_CONNECTOR_NAME_TABLE[ Index ][ 2 ];
3025 
3026       Button->X        = X1;
3027       Button->Y        = Y1;
3028       Button->CALLDATA = (XtPointer)Index;
3029 
3030       if ( X1 == 1 )
3031       {
3032         X1 = 0; Y1 = Y1 + 1;
3033       }
3034       else
3035       {
3036         X1 = X1 + 1;
3037       }
3038     }
3039   }
3040 
3041   if ( X1 == 1 )
3042   {
3043     Y1 = Y1 + 1; X1 = 0;
3044   }
3045 
3046   GraalCreateConnectorButton[ MBK_MAX_LAYER ].Y = Y1;
3047 
3048   Y1 = Y1 + 1;
3049 
3050   for ( Index = 0; Index < MBK_MAX_ORIENT; Index++ )
3051   {
3052     if ( GRAAL_ORIENT_NAME_TABLE[ Index ][ 0 ] != (char *)NULL )
3053     {
3054       Button = &GraalCreateConnectorButton[ Index + MBK_MAX_LAYER + 1 ];
3055 
3056       Button->LABEL      = GRAAL_ORIENT_NAME_TABLE[ Index ][ 0 ];
3057       Button->FOREGROUND = GRAAL_ORIENT_NAME_TABLE[ Index ][ 1 ];
3058       Button->BACKGROUND = GRAAL_ORIENT_NAME_TABLE[ Index ][ 2 ];
3059 
3060       Button->Y        = Y1;
3061       Button->CALLDATA = (XtPointer)Index;
3062 
3063       Y1 = Y1 + 1;
3064     }
3065   }
3066 
3067   GraalCreateConnectorButton[ MBK_MAX_LAYER + MBK_MAX_ORIENT + 1 ].Y = Y1;
3068   Y1 = Y1 + 1;
3069 
3070   GraalCreateConnectorPanel.ROW = Y1;
3071   GraalCreateConnectorDefaultValues[ 3 ] = Y1 * 25;
3072 
3073   Y1 = 0;
3074 
3075   for ( Index = 0; Index < MBK_MAX_REFERENCE; Index++ )
3076   {
3077     if ( GRAAL_REFERENCE_NAME_TABLE[ Index ][ 0 ] != (char *)NULL )
3078     {
3079       Button = &GraalCreateReferenceButton[ Index ];
3080 
3081       Button->LABEL      = GRAAL_REFERENCE_NAME_TABLE[ Index ][ 0 ];
3082       Button->FOREGROUND = GRAAL_REFERENCE_NAME_TABLE[ Index ][ 1 ];
3083       Button->BACKGROUND = GRAAL_REFERENCE_NAME_TABLE[ Index ][ 2 ];
3084 
3085       Button->Y        = Y1;
3086       Button->CALLDATA = (XtPointer)Index;
3087 
3088       Y1 = Y1 + 1;
3089     }
3090   }
3091 
3092   GraalCreateReferenceButton[ MBK_MAX_REFERENCE ].Y = Y1;
3093   Y1 = Y1 + 1;
3094 
3095   GraalCreateReferencePanel.ROW = Y1;
3096   GraalCreateReferenceDefaultValues[ 3 ] = Y1 * 25;
3097 
3098   Y1 = 0;
3099 
3100   for ( Index = 0; Index < MBK_MAX_SYMMETRY; Index++ )
3101   {
3102     if ( GRAAL_SYMMETRY_NAME_TABLE[ Index ][ 0 ] != (char *)NULL )
3103     {
3104       Button = &GraalCreateInstanceButton[ Index ];
3105 
3106       Button->LABEL      = GRAAL_SYMMETRY_NAME_TABLE[ Index ][ 0 ];
3107       Button->FOREGROUND = GRAAL_SYMMETRY_NAME_TABLE[ Index ][ 1 ];
3108       Button->BACKGROUND = GRAAL_SYMMETRY_NAME_TABLE[ Index ][ 2 ];
3109 
3110       Button->Y        = Y1;
3111       Button->CALLDATA = (XtPointer)Index;
3112 
3113       Y1 = Y1 + 1;
3114     }
3115   }
3116 
3117   GraalCreateInstanceButton[ MBK_MAX_SYMMETRY ].Y = Y1;
3118   Y1 = Y1 + 1;
3119 
3120   GraalCreateInstancePanel.ROW = Y1;
3121   GraalCreateInstanceDefaultValues[ 3 ] = Y1 * 25;
3122 }
3123 
3124 /*------------------------------------------------------------\
3125 |                                                             |
3126 |                    Callback For Segment                     |
3127 |                                                             |
3128 \------------------------------------------------------------*/
3129 /*------------------------------------------------------------\
3130 |                                                             |
3131 |                CallbackChangeSegmentLayer                   |
3132 |                                                             |
3133 \------------------------------------------------------------*/
3134 
CallbackChangeSegmentLayer(MyWidget,ClientData,CallData)3135 void CallbackChangeSegmentLayer( MyWidget, ClientData, CallData )
3136 
3137      Widget  MyWidget;
3138      caddr_t ClientData;
3139      caddr_t CallData;
3140 {
3141   rdsbegin();
3142 
3143   GraalSegmentLayer = (long)ClientData;
3144   GraalSegmentWidth = GRAAL_SEGMENT_VALUE_TABLE[ (int)GraalSegmentLayer ][0];
3145 
3146   if ( GraalSegmentWire == GRAAL_FALSE )
3147   {
3148     GraalChangeEditMode( GRAAL_CREATE_SEGMENT,
3149                          GraalPromptCreateSegment );
3150   }
3151   else
3152   {
3153     GraalChangeEditMode( GRAAL_CREATE_SEGMENT_WIRE,
3154                          GraalPromptCreateSegment );
3155   }
3156 
3157   rdsend();
3158 }
3159 
3160 /*------------------------------------------------------------\
3161 |                                                             |
3162 |                GraalChangeSegmentLayer                      |
3163 |                                                             |
3164 \------------------------------------------------------------*/
3165 
GraalChangeSegmentLayer(LayerUp)3166 void GraalChangeSegmentLayer( LayerUp )
3167 
3168   int LayerUp;
3169 {
3170   int  MbkLayer;
3171   int  Step;
3172 
3173   if ( LayerUp ) Step =  1;
3174   else           Step = -1;
3175 
3176   MbkLayer = GraalSegmentLayer;
3177 
3178   do
3179   {
3180     MbkLayer += Step;
3181 
3182     if ( MbkLayer >= MBK_MAX_LAYER ) MbkLayer = 0;
3183     else
3184     if ( MbkLayer <  0             ) MbkLayer = MBK_MAX_LAYER - 1;
3185   }
3186   while ( GRAAL_SEGMENT_NAME_TABLE[ MbkLayer ][ 0 ] == (char *)0 );
3187 
3188   GraalSegmentLayer = MbkLayer;
3189   GraalSegmentWidth = GRAAL_SEGMENT_VALUE_TABLE[ MbkLayer ][0];
3190 }
3191 
3192 /*------------------------------------------------------------\
3193 |                                                             |
3194 |                CallbackChangeSegmentWire                    |
3195 |                                                             |
3196 \------------------------------------------------------------*/
3197 
CallbackChangeSegmentWire(MyWidget,ClientData,CallData)3198 void CallbackChangeSegmentWire( MyWidget, ClientData, CallData )
3199 
3200      Widget  MyWidget;
3201      caddr_t ClientData;
3202      caddr_t CallData;
3203 {
3204   XmString Label;
3205 
3206   rdsbegin();
3207 
3208   GraalSegmentWire = ! GraalSegmentWire;
3209 
3210   if ( GraalSegmentWire == GRAAL_FALSE )
3211   {
3212     Label = XmStringCreateSimple( "Simple" );
3213 
3214     GraalChangeEditMode( GRAAL_CREATE_SEGMENT,
3215                          GraalPromptCreateSegment );
3216   }
3217   else
3218   {
3219     Label = XmStringCreateSimple( "Wire" );
3220 
3221     GraalChangeEditMode( GRAAL_CREATE_SEGMENT_WIRE,
3222                          GraalPromptCreateSegment );
3223   }
3224 
3225   XtVaSetValues( MyWidget, XmNlabelString, Label,
3226                            XmNresizable  , False,
3227                            NULL );
3228 
3229   XmStringFree( Label );
3230 
3231   rdsend();
3232 }
3233 
3234 /*------------------------------------------------------------\
3235 |                                                             |
3236 |                CallbackChangeSegmentWidth                   |
3237 |                                                             |
3238 \------------------------------------------------------------*/
3239 
CallbackChangeSegmentWidth(MyWidget,ClientData,CallData)3240 void CallbackChangeSegmentWidth( MyWidget, ClientData, CallData )
3241 
3242      Widget  MyWidget;
3243      caddr_t ClientData;
3244      caddr_t CallData;
3245 {
3246   rdsbegin();
3247 
3248   GraalEnterDialog( &GraalChangeSegmentWidthDialog );
3249 
3250   rdsend();
3251 }
3252 
3253 /*------------------------------------------------------------\
3254 |                                                             |
3255 |                CallbackChangeSegmentName                    |
3256 |                                                             |
3257 \------------------------------------------------------------*/
3258 
CallbackChangeSegmentName(MyWidget,ClientData,CallData)3259 void CallbackChangeSegmentName( MyWidget, ClientData, CallData )
3260 
3261      Widget  MyWidget;
3262      caddr_t ClientData;
3263      caddr_t CallData;
3264 {
3265   rdsbegin();
3266 
3267   GraalEnterDialog( &GraalChangeSegmentNameDialog );
3268 
3269   rdsend();
3270 }
3271 
3272 /*------------------------------------------------------------\
3273 |                                                             |
3274 |                CallbackChangeSegmentClose                   |
3275 |                                                             |
3276 \------------------------------------------------------------*/
3277 
CallbackChangeSegmentClose(MyWidget,ClientData,CallData)3278 void CallbackChangeSegmentClose( MyWidget, ClientData, CallData )
3279 
3280      Widget  MyWidget;
3281      caddr_t ClientData;
3282      caddr_t CallData;
3283 {
3284   rdsbegin();
3285 
3286   GraalExitPanel( &GraalCreateSegmentPanel );
3287 
3288   GraalChangeEditMode( GRAAL_EDIT_MEASURE,
3289                        GraalPromptEditMeasure );
3290 
3291   rdsend();
3292 }
3293 
3294 /*------------------------------------------------------------\
3295 |                                                             |
3296 |                     Callback For Via                        |
3297 |                                                             |
3298 \------------------------------------------------------------*/
3299 /*------------------------------------------------------------\
3300 |                                                             |
3301 |                    CallbackChangeViaType                    |
3302 |                                                             |
3303 \------------------------------------------------------------*/
3304 
CallbackChangeViaType(MyWidget,ClientData,CallData)3305 void CallbackChangeViaType( MyWidget, ClientData, CallData )
3306 
3307      Widget  MyWidget;
3308      caddr_t ClientData;
3309      caddr_t CallData;
3310 {
3311   rdsbegin();
3312 
3313   GraalViaType = (long)ClientData;
3314 
3315   GraalChangeEditMode( GRAAL_CREATE_VIA,
3316                        GraalPromptCreateVia );
3317 
3318   rdsend();
3319 }
3320 
3321 /*------------------------------------------------------------\
3322 |                                                             |
3323 |                        GraalChangeViaType                   |
3324 |                                                             |
3325 \------------------------------------------------------------*/
3326 
GraalChangeViaType(TypeUp)3327 void GraalChangeViaType( TypeUp )
3328 
3329   int TypeUp;
3330 {
3331   int MbkType;
3332   int Step;
3333 
3334   if ( TypeUp ) Step =  1;
3335   else          Step = -1;
3336 
3337   MbkType = GraalViaType;
3338 
3339   do
3340   {
3341     MbkType += Step;
3342 
3343     if ( MbkType >= MBK_MAX_VIA ) MbkType = 0;
3344     else
3345     if ( MbkType <  0           ) MbkType = MBK_MAX_VIA - 1;
3346   }
3347   while ( GRAAL_VIA_NAME_TABLE[ MbkType ][ 0 ] == (char *)0 );
3348 
3349   GraalViaType = MbkType;
3350 }
3351 
3352 /*------------------------------------------------------------\
3353 |                                                             |
3354 |                  CallbackChangeViaName                      |
3355 |                                                             |
3356 \------------------------------------------------------------*/
3357 
CallbackChangeViaName(MyWidget,ClientData,CallData)3358 void CallbackChangeViaName( MyWidget, ClientData, CallData )
3359 
3360      Widget  MyWidget;
3361      caddr_t ClientData;
3362      caddr_t CallData;
3363 {
3364   rdsbegin();
3365 
3366   GraalEnterDialog( &GraalChangeViaNameDialog );
3367 
3368   rdsend();
3369 }
3370 
3371 /*------------------------------------------------------------\
3372 |                                                             |
3373 |                   CallbackChangeViaClose                    |
3374 |                                                             |
3375 \------------------------------------------------------------*/
3376 
CallbackChangeViaClose(MyWidget,ClientData,CallData)3377 void CallbackChangeViaClose( MyWidget, ClientData, CallData )
3378 
3379      Widget  MyWidget;
3380      caddr_t ClientData;
3381      caddr_t CallData;
3382 {
3383   rdsbegin();
3384 
3385   GraalExitPanel( &GraalCreateViaPanel );
3386 
3387   GraalChangeEditMode( GRAAL_EDIT_MEASURE,
3388                        GraalPromptEditMeasure );
3389 
3390   rdsend();
3391 }
3392 
3393 /*------------------------------------------------------------\
3394 |                                                             |
3395 |                     Callback For Big Via                    |
3396 |                                                             |
3397 \------------------------------------------------------------*/
3398 /*------------------------------------------------------------\
3399 |                                                             |
3400 |                   CallbackChangeBigViaType                  |
3401 |                                                             |
3402 \------------------------------------------------------------*/
3403 
CallbackChangeBigViaType(MyWidget,ClientData,CallData)3404 void CallbackChangeBigViaType( MyWidget, ClientData, CallData )
3405 
3406      Widget  MyWidget;
3407      caddr_t ClientData;
3408      caddr_t CallData;
3409 {
3410   rdsbegin();
3411 
3412   GraalBigViaType = (long)ClientData;
3413 
3414   GraalChangeEditMode( GRAAL_CREATE_BIGVIA,
3415                        GraalPromptCreateBigVia );
3416 
3417   rdsend();
3418 }
3419 
3420 /*------------------------------------------------------------\
3421 |                                                             |
3422 |                      GraalChangeBigViaType                  |
3423 |                                                             |
3424 \------------------------------------------------------------*/
3425 
GraalChangeBigViaType(TypeUp)3426 void GraalChangeBigViaType( TypeUp )
3427 
3428   int TypeUp;
3429 {
3430   int MbkType;
3431   int Step;
3432 
3433   if ( TypeUp ) Step =  1;
3434   else          Step = -1;
3435 
3436   MbkType = GraalBigViaType;
3437 
3438   do
3439   {
3440     MbkType += Step;
3441 
3442     if ( MbkType >= MBK_MAX_VIA ) MbkType = 0;
3443     else
3444     if ( MbkType <  0           ) MbkType = MBK_MAX_VIA - 1;
3445   }
3446   while ( GRAAL_BIGVIA_NAME_TABLE[ MbkType ][ 0 ] == (char *)0 );
3447 
3448   GraalBigViaType = MbkType;
3449 }
3450 
3451 /*------------------------------------------------------------\
3452 |                                                             |
3453 |                CallbackChangeBigViaName                     |
3454 |                                                             |
3455 \------------------------------------------------------------*/
3456 
CallbackChangeBigViaName(MyWidget,ClientData,CallData)3457 void CallbackChangeBigViaName( MyWidget, ClientData, CallData )
3458 
3459      Widget  MyWidget;
3460      caddr_t ClientData;
3461      caddr_t CallData;
3462 {
3463   rdsbegin();
3464 
3465   GraalEnterDialog( &GraalChangeBigViaNameDialog );
3466 
3467   rdsend();
3468 }
3469 
3470 
3471 /*------------------------------------------------------------\
3472 |                                                             |
3473 |                 CallbackChangeBigViaClose                   |
3474 |                                                             |
3475 \------------------------------------------------------------*/
3476 
CallbackChangeBigViaClose(MyWidget,ClientData,CallData)3477 void CallbackChangeBigViaClose( MyWidget, ClientData, CallData )
3478 
3479      Widget  MyWidget;
3480      caddr_t ClientData;
3481      caddr_t CallData;
3482 {
3483   rdsbegin();
3484 
3485   GraalExitPanel( &GraalCreateBigViaPanel );
3486 
3487   GraalChangeEditMode( GRAAL_EDIT_MEASURE,
3488                        GraalPromptEditMeasure );
3489 
3490   rdsend();
3491 }
3492 
3493 /*------------------------------------------------------------\
3494 |                                                             |
3495 |                    Callback For Transistor                  |
3496 |                                                             |
3497 \------------------------------------------------------------*/
3498 /*------------------------------------------------------------\
3499 |                                                             |
3500 |                    CallbackChangeTransistorType             |
3501 |                                                             |
3502 \------------------------------------------------------------*/
3503 
CallbackChangeTransistorType(MyWidget,ClientData,CallData)3504 void CallbackChangeTransistorType( MyWidget, ClientData, CallData )
3505 
3506      Widget  MyWidget;
3507      caddr_t ClientData;
3508      caddr_t CallData;
3509 {
3510   rdsbegin();
3511 
3512   GraalTransistorType  = (long)ClientData;
3513   GraalTransistorWidth = GRAAL_SEGMENT_VALUE_TABLE[ (int)GraalTransistorType ][0];
3514 
3515   if ( GraalTransistorWire == GRAAL_FALSE )
3516   {
3517     GraalChangeEditMode( GRAAL_CREATE_TRANSISTOR,
3518                          GraalPromptCreateTransistor );
3519   }
3520   else
3521   {
3522     GraalChangeEditMode( GRAAL_CREATE_TRANSISTOR_WIRE,
3523                          GraalPromptCreateTransistor );
3524   }
3525 
3526   rdsend();
3527 }
3528 
3529 /*------------------------------------------------------------\
3530 |                                                             |
3531 |                GraalChangeTransistorType                    |
3532 |                                                             |
3533 \------------------------------------------------------------*/
3534 
GraalChangeTransistorType(TypeUp)3535 void GraalChangeTransistorType( TypeUp )
3536 
3537   int TypeUp;
3538 {
3539   int  MbkType;
3540   int  Step;
3541 
3542   if ( TypeUp ) Step =  1;
3543   else          Step = -1;
3544 
3545   MbkType = GraalTransistorType;
3546 
3547   do
3548   {
3549     MbkType += Step;
3550 
3551     if ( MbkType >= MBK_MAX_LAYER ) MbkType = 0;
3552     else
3553     if ( MbkType <  0             ) MbkType = MBK_MAX_LAYER - 1;
3554   }
3555   while ( GRAAL_TRANSISTOR_NAME_TABLE[ MbkType ][ 0 ] == (char *)0 );
3556 
3557   GraalTransistorType  = MbkType;
3558   GraalTransistorWidth = GRAAL_SEGMENT_VALUE_TABLE[ MbkType ][0];
3559 }
3560 
3561 /*------------------------------------------------------------\
3562 |                                                             |
3563 |                CallbackChangeTransistorWidth                |
3564 |                                                             |
3565 \------------------------------------------------------------*/
3566 
CallbackChangeTransistorWidth(MyWidget,ClientData,CallData)3567 void CallbackChangeTransistorWidth( MyWidget, ClientData, CallData )
3568 
3569      Widget  MyWidget;
3570      caddr_t ClientData;
3571      caddr_t CallData;
3572 {
3573   rdsbegin();
3574 
3575   GraalEnterDialog( &GraalChangeTransistorWidthDialog );
3576 
3577   rdsend();
3578 }
3579 
3580 /*------------------------------------------------------------\
3581 |                                                             |
3582 |                CallbackChangeTransistorName                 |
3583 |                                                             |
3584 \------------------------------------------------------------*/
3585 
CallbackChangeTransistorName(MyWidget,ClientData,CallData)3586 void CallbackChangeTransistorName( MyWidget, ClientData, CallData )
3587 
3588      Widget  MyWidget;
3589      caddr_t ClientData;
3590      caddr_t CallData;
3591 {
3592   rdsbegin();
3593 
3594   GraalEnterDialog( &GraalChangeTransistorNameDialog );
3595 
3596   rdsend();
3597 }
3598 
3599 /*------------------------------------------------------------\
3600 |                                                             |
3601 |                CallbackChangeTransistorWire                 |
3602 |                                                             |
3603 \------------------------------------------------------------*/
3604 
CallbackChangeTransistorWire(MyWidget,ClientData,CallData)3605 void CallbackChangeTransistorWire( MyWidget, ClientData, CallData )
3606 
3607      Widget  MyWidget;
3608      caddr_t ClientData;
3609      caddr_t CallData;
3610 {
3611   XmString Label;
3612 
3613   rdsbegin();
3614 
3615   GraalTransistorWire = ! GraalTransistorWire;
3616 
3617   if ( GraalTransistorWire == GRAAL_FALSE )
3618   {
3619     Label = XmStringCreateSimple( "Simple" );
3620 
3621     GraalChangeEditMode( GRAAL_CREATE_TRANSISTOR,
3622                          GraalPromptCreateTransistor );
3623   }
3624   else
3625   {
3626     Label = XmStringCreateSimple( "Wire" );
3627 
3628     GraalChangeEditMode( GRAAL_CREATE_TRANSISTOR_WIRE,
3629                          GraalPromptCreateTransistor );
3630   }
3631 
3632   XtVaSetValues( MyWidget, XmNlabelString, Label,
3633                            XmNresizable  , False,
3634                            NULL );
3635 
3636   XmStringFree( Label );
3637 
3638   rdsend();
3639 }
3640 
3641 
3642 /*------------------------------------------------------------\
3643 |                                                             |
3644 |                   CallbackChangeTransistorClose             |
3645 |                                                             |
3646 \------------------------------------------------------------*/
3647 
CallbackChangeTransistorClose(MyWidget,ClientData,CallData)3648 void CallbackChangeTransistorClose( MyWidget, ClientData, CallData )
3649 
3650      Widget  MyWidget;
3651      caddr_t ClientData;
3652      caddr_t CallData;
3653 {
3654   rdsbegin();
3655 
3656   GraalExitPanel( &GraalCreateTransistorPanel );
3657 
3658   GraalChangeEditMode( GRAAL_EDIT_MEASURE,
3659                        GraalPromptEditMeasure );
3660 
3661   rdsend();
3662 }
3663 
3664 /*------------------------------------------------------------\
3665 |                                                             |
3666 |                      Callback For Connector                 |
3667 |                                                             |
3668 \------------------------------------------------------------*/
3669 /*------------------------------------------------------------\
3670 |                                                             |
3671 |                    CallbackChangeConnectorLayer             |
3672 |                                                             |
3673 \------------------------------------------------------------*/
3674 
CallbackChangeConnectorLayer(MyWidget,ClientData,CallData)3675 void CallbackChangeConnectorLayer( MyWidget, ClientData, CallData )
3676 
3677      Widget  MyWidget;
3678      caddr_t ClientData;
3679      caddr_t CallData;
3680 {
3681   rdsbegin();
3682 
3683   GraalConnectorLayer = (long)ClientData;
3684   GraalConnectorWidth = GRAAL_SEGMENT_VALUE_TABLE[ (int)GraalConnectorLayer ][0];
3685 
3686   GraalChangeEditMode( GRAAL_CREATE_CONNECTOR,
3687                        GraalPromptCreateConnector );
3688 
3689   rdsend();
3690 }
3691 
3692 /*------------------------------------------------------------\
3693 |                                                             |
3694 |                GraalChangeConnectorLayer                    |
3695 |                                                             |
3696 \------------------------------------------------------------*/
3697 
GraalChangeConnectorLayer(LayerUp)3698 void GraalChangeConnectorLayer( LayerUp )
3699 
3700   int LayerUp;
3701 {
3702   int  MbkLayer;
3703   int  Step;
3704 
3705   if ( LayerUp ) Step =  1;
3706   else           Step = -1;
3707 
3708   MbkLayer = GraalConnectorLayer;
3709 
3710   do
3711   {
3712     MbkLayer += Step;
3713 
3714     if ( MbkLayer >= MBK_MAX_LAYER ) MbkLayer = 0;
3715     else
3716     if ( MbkLayer <  0             ) MbkLayer = MBK_MAX_LAYER - 1;
3717   }
3718   while ( GRAAL_CONNECTOR_NAME_TABLE[ MbkLayer ][ 0 ] == (char *)0 );
3719 
3720   GraalConnectorLayer = MbkLayer;
3721   GraalConnectorWidth = GRAAL_SEGMENT_VALUE_TABLE[ MbkLayer ][0];
3722 }
3723 
3724 /*------------------------------------------------------------\
3725 |                                                             |
3726 |                 CallbackChangeConnectorWidth                |
3727 |                                                             |
3728 \------------------------------------------------------------*/
3729 
CallbackChangeConnectorWidth(MyWidget,ClientData,CallData)3730 void CallbackChangeConnectorWidth( MyWidget, ClientData, CallData )
3731 
3732      Widget  MyWidget;
3733      caddr_t ClientData;
3734      caddr_t CallData;
3735 {
3736   rdsbegin();
3737 
3738   GraalEnterDialog( &GraalChangeConnectorWidthDialog );
3739 
3740   rdsend();
3741 }
3742 
3743 /*------------------------------------------------------------\
3744 |                                                             |
3745 |                 CallbackChangeConnectorOrient               |
3746 |                                                             |
3747 \------------------------------------------------------------*/
3748 
CallbackChangeConnectorOrient(MyWidget,ClientData,CallData)3749 void CallbackChangeConnectorOrient( MyWidget, ClientData, CallData )
3750 
3751      Widget  MyWidget;
3752      caddr_t ClientData;
3753      caddr_t CallData;
3754 {
3755   rdsbegin();
3756 
3757   GraalConnectorOrient = (long)ClientData;
3758 
3759   GraalChangeEditMode( GRAAL_CREATE_CONNECTOR,
3760                        GraalPromptCreateConnector );
3761 
3762   rdsend();
3763 }
3764 
3765 /*------------------------------------------------------------\
3766 |                                                             |
3767 |                    CallbackChangeConnectorClose             |
3768 |                                                             |
3769 \------------------------------------------------------------*/
3770 
CallbackChangeConnectorClose(MyWidget,ClientData,CallData)3771 void CallbackChangeConnectorClose( MyWidget, ClientData, CallData )
3772 
3773      Widget  MyWidget;
3774      caddr_t ClientData;
3775      caddr_t CallData;
3776 {
3777   rdsbegin();
3778 
3779   GraalExitPanel( &GraalCreateConnectorPanel );
3780 
3781   GraalChangeEditMode( GRAAL_EDIT_MEASURE,
3782                        GraalPromptEditMeasure );
3783 
3784   rdsend();
3785 }
3786 
3787 /*------------------------------------------------------------\
3788 |                                                             |
3789 |                      Callback For Reference                 |
3790 |                                                             |
3791 \------------------------------------------------------------*/
3792 /*------------------------------------------------------------\
3793 |                                                             |
3794 |                    CallbackChangeReferenceType              |
3795 |                                                             |
3796 \------------------------------------------------------------*/
3797 
CallbackChangeReferenceType(MyWidget,ClientData,CallData)3798 void CallbackChangeReferenceType( MyWidget, ClientData, CallData )
3799 
3800      Widget  MyWidget;
3801      caddr_t ClientData;
3802      caddr_t CallData;
3803 {
3804   rdsbegin();
3805 
3806   GraalReferenceType = (long)ClientData;
3807 
3808   GraalChangeEditMode( GRAAL_CREATE_REFERENCE,
3809                        GraalPromptCreateReference );
3810 
3811   rdsend();
3812 }
3813 
3814 /*------------------------------------------------------------\
3815 |                                                             |
3816 |                   GraalChangeReferenceType                  |
3817 |                                                             |
3818 \------------------------------------------------------------*/
3819 
GraalChangeReferenceType(TypeUp)3820 void GraalChangeReferenceType( TypeUp )
3821 
3822   int TypeUp;
3823 {
3824   int MbkType;
3825   int Step;
3826 
3827   if ( TypeUp ) Step =  1;
3828   else          Step = -1;
3829 
3830   MbkType = GraalReferenceType;
3831 
3832   do
3833   {
3834     MbkType += Step;
3835 
3836     if ( MbkType >= MBK_MAX_REFERENCE ) MbkType = 0;
3837     else
3838     if ( MbkType <  0                 ) MbkType = MBK_MAX_REFERENCE - 1;
3839   }
3840   while ( GRAAL_REFERENCE_NAME_TABLE[ MbkType ][ 0 ] == (char *)0 );
3841 
3842   GraalReferenceType = MbkType;
3843 }
3844 
3845 /*------------------------------------------------------------\
3846 |                                                             |
3847 |                    CallbackChangeReferenceClose             |
3848 |                                                             |
3849 \------------------------------------------------------------*/
3850 
CallbackChangeReferenceClose(MyWidget,ClientData,CallData)3851 void CallbackChangeReferenceClose( MyWidget, ClientData, CallData )
3852 
3853      Widget  MyWidget;
3854      caddr_t ClientData;
3855      caddr_t CallData;
3856 {
3857   rdsbegin();
3858 
3859   GraalExitPanel( &GraalCreateReferencePanel );
3860 
3861   GraalChangeEditMode( GRAAL_EDIT_MEASURE,
3862                        GraalPromptEditMeasure );
3863 
3864   rdsend();
3865 }
3866 
3867 /*------------------------------------------------------------\
3868 |                                                             |
3869 |                      Callback For Instance                  |
3870 |                                                             |
3871 \------------------------------------------------------------*/
3872 /*------------------------------------------------------------\
3873 |                                                             |
3874 |                    CallbackChangeInstanceSym                |
3875 |                                                             |
3876 \------------------------------------------------------------*/
3877 
CallbackChangeInstanceSym(MyWidget,ClientData,CallData)3878 void CallbackChangeInstanceSym( MyWidget, ClientData, CallData )
3879 
3880      Widget  MyWidget;
3881      caddr_t ClientData;
3882      caddr_t CallData;
3883 {
3884   rdsbegin();
3885 
3886   GraalInstanceSym = (long)ClientData;
3887 
3888   GraalChangeEditMode( GRAAL_CREATE_INSTANCE,
3889                        GraalPromptCreateInstance );
3890 
3891   rdsend();
3892 }
3893 
3894 /*------------------------------------------------------------\
3895 |                                                             |
3896 |                     CallbackChangeInstanceClose             |
3897 |                                                             |
3898 \------------------------------------------------------------*/
3899 
CallbackChangeInstanceClose(MyWidget,ClientData,CallData)3900 void CallbackChangeInstanceClose( MyWidget, ClientData, CallData )
3901 
3902      Widget  MyWidget;
3903      caddr_t ClientData;
3904      caddr_t CallData;
3905 {
3906   rdsbegin();
3907 
3908   GraalExitPanel( &GraalCreateInstancePanel );
3909 
3910   GraalChangeEditMode( GRAAL_EDIT_MEASURE,
3911                        GraalPromptEditMeasure );
3912 
3913   rdsend();
3914 }
3915