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 <sys/types.h>
47 # include <sys/stat.h>
48 # include <string.h>
49 # include <Xm/Xm.h>
50 # include <Xm/Form.h>
51 # include <Xm/LabelG.h>
52 # include <Xm/Label.h>
53 # include <Xm/Frame.h>
54 # include <Xm/List.h>
55 # include <Xm/Text.h>
56 # include <Xm/PushB.h>
57 # include <Xm/FileSB.h>
58
59 # include "mut.h"
60 # include "mph.h"
61 # include "rds.h"
62 # include "rpr.h"
63 # include "rfm.h"
64 # include "GRM.h"
65 # include "GMX.h"
66 # include "GTB.h"
67 # include "GSB.h"
68 # include "GMF.h"
69
70 # include "GMF_panel.h"
71 # include "GMF_dialog.h"
72 # include "GMC_dialog.h"
73 # include "GMT_dialog.h"
74 # include "GME_dialog.h"
75
76 /*------------------------------------------------------------\
77 | |
78 | Constants |
79 | |
80 \------------------------------------------------------------*/
81 /*------------------------------------------------------------\
82 | |
83 | Types |
84 | |
85 \------------------------------------------------------------*/
86 /*------------------------------------------------------------\
87 | |
88 | Variables |
89 | |
90 \------------------------------------------------------------*/
91
92 GraalPanelItem GraalLibraryPanel =
93
94 {
95 "Library",
96 1,
97 0,
98 GRAAL_LIBRARY_X,
99 GRAAL_LIBRARY_Y,
100 250,
101 375,
102 1,
103 1,
104 (Widget)NULL,
105 (Widget)NULL,
106 (Widget)NULL,
107 (Widget)NULL,
108 0,
109 (GraalPanelButtonItem *)NULL
110 };
111
112 int GraalLibraryDefaultValues[ 5 ] =
113
114 {
115 GRAAL_LIBRARY_X,
116 GRAAL_LIBRARY_Y,
117 250, 375, 0
118 };
119
120 static char **GRAAL_CATA_LIB = (char **)NULL;
121 static char *GRAAL_DEFAULT_LIB = (char *)NULL;
122 char *GRAAL_WORK_LIB = (char *)NULL;
123
124 static char GraalFirstLibrary = 1;
125
126 /*------------------------------------------------------------\
127 | |
128 | Buffer |
129 | |
130 \------------------------------------------------------------*/
131 /*------------------------------------------------------------\
132 | |
133 | Widget For Library Panel |
134 | |
135 \------------------------------------------------------------*/
136
137 Widget GraalLibraryListLabel;
138 Widget GraalLibraryList;
139
140 Widget GraalLibraryButtonOk;
141 Widget GraalLibraryButtonUpdate;
142 Widget GraalLibraryButtonCancel;
143
144 Widget GraalLibraryCataLabel;
145 Widget GraalLibraryCata;
146
147 Widget GraalLibraryWorkLabel;
148 Widget GraalLibraryWork;
149
150 /*------------------------------------------------------------\
151 | |
152 | Functions |
153 | |
154 \------------------------------------------------------------*/
155 /*------------------------------------------------------------\
156 | |
157 | GraalIsDirectory |
158 | |
159 \------------------------------------------------------------*/
160
GraalIsDirectory(FileName)161 char GraalIsDirectory( FileName )
162
163 char *FileName;
164 {
165 struct stat Buffer;
166
167 rdsbegin();
168
169 if ( stat( FileName, &Buffer ) != -1 )
170 {
171 if ( ( Buffer.st_mode & S_IFMT ) == S_IFDIR )
172 {
173 rdsend();
174 return( 1 );
175 }
176 }
177
178 rdsend();
179 return( 0 );
180 }
181
182 /*-----------------------------------------------------------*\
183 | |
184 | GraalAddDirectoryToCataLibrary |
185 | |
186 \------------------------------------------------------------*/
187
GraalAddDirectoryToCataLibrary(Directory)188 void GraalAddDirectoryToCataLibrary( Directory )
189
190 char *Directory;
191 {
192 char **NewCataLib;
193 int Index;
194
195 if ( ! GraalIsDirectory( Directory ) ) return;
196
197 for ( Index = 0;
198 CATA_LIB[ Index ] != (char *)NULL;
199 Index++ )
200 {
201 if ( ! strcmp( CATA_LIB[ Index ], Directory ) ) return;
202 }
203
204 NewCataLib = (char **)rdsallocblock( sizeof(char *) * ( Index + 2 ));
205
206 for ( Index = 0;
207 CATA_LIB[ Index ] != (char *)NULL;
208 Index++ )
209 {
210 NewCataLib[ Index ] = CATA_LIB[ Index ];
211 }
212
213 NewCataLib[ Index ] = rdsallocblock( strlen( Directory ) + 1 );
214 strcpy( NewCataLib[ Index ], Directory );
215
216 rdsfreeblock( CATA_LIB );
217 CATA_LIB = NewCataLib;
218 }
219
220 /*------------------------------------------------------------\
221 | |
222 | GraalSetLibraryList |
223 | |
224 \------------------------------------------------------------*/
225
GraalSetLibraryList()226 void GraalSetLibraryList()
227 {
228 int Index;
229 XmString Label;
230
231 rdsbegin();
232
233 XmListDeleteAllItems( GraalLibraryList );
234
235 for ( Index = 0;
236 GRAAL_CATA_LIB[ Index ] != (char *)NULL;
237 Index++ )
238 {
239 Label = XmStringCreateSimple( GRAAL_CATA_LIB[ Index ] );
240 XmListAddItem( GraalLibraryList , Label , 0 );
241 XmStringFree( Label );
242 }
243
244 Label = XmStringCreateSimple( GRAAL_WORK_LIB );
245 XmListAddItem( GraalLibraryList , Label , 0 );
246 XmStringFree( Label );
247
248 GRAAL_DEFAULT_LIB = (char *)NULL;
249
250 rdsend();
251 }
252
253 /*------------------------------------------------------------\
254 | |
255 | GraalSetWorkLibrary |
256 | |
257 \------------------------------------------------------------*/
258
GraalSetWorkLibrary()259 void GraalSetWorkLibrary()
260 {
261 rdsbegin();
262
263 XmTextSetString( GraalLibraryWork, GRAAL_WORK_LIB );
264
265 rdsend();
266 }
267
268 /*------------------------------------------------------------\
269 | |
270 | GraalSetCataLibrary |
271 | |
272 \------------------------------------------------------------*/
273
GraalSetCataLibrary()274 void GraalSetCataLibrary()
275 {
276 int Index;
277 long Length;
278 char *Buffer;
279 char *Scan;
280
281 rdsbegin();
282
283 for ( Index = 0, Length = 0;
284 GRAAL_CATA_LIB[ Index ] != (char *)NULL;
285 Index++ )
286 {
287 Length = Length + strlen( GRAAL_CATA_LIB[ Index ] ) + 1;
288 }
289
290 Buffer = rdsallocblock( Length + 1 );
291 Scan = Buffer;
292
293 for ( Index = 0;
294 GRAAL_CATA_LIB[ Index ] != (char *)NULL;
295 Index++ )
296 {
297 strcpy( Scan, GRAAL_CATA_LIB[ Index ] );
298 strcat( Scan, "\n" );
299
300 Scan = Scan + strlen( Scan );
301 }
302
303 XmTextSetString( GraalLibraryCata, Buffer );
304
305 rdsfreeblock( Buffer );
306
307 rdsend();
308 }
309
310 /*------------------------------------------------------------\
311 | |
312 | GraalInitializeLibrary |
313 | |
314 \------------------------------------------------------------*/
315
GraalInitializeLibrary()316 void GraalInitializeLibrary()
317 {
318 int Index;
319
320 rdsbegin();
321
322 for ( Index = 0; CATA_LIB[ Index ] != (char *)NULL; Index++ );
323
324 GRAAL_CATA_LIB = (char **)rdsallocblock( sizeof(char *) * ( Index + 1 ));
325
326 for ( Index = 0;
327 CATA_LIB[ Index ] != (char *)NULL;
328 Index++ )
329 {
330 GRAAL_CATA_LIB[ Index ] = rdsallocblock( strlen( CATA_LIB[ Index ] ) + 1 );
331 strcpy( GRAAL_CATA_LIB[ Index ], CATA_LIB[ Index ] );
332 }
333
334 GRAAL_CATA_LIB[ Index ] = (char *)NULL;
335
336 GRAAL_WORK_LIB = rdsallocblock( strlen( WORK_LIB ) + 1 );
337 strcpy( GRAAL_WORK_LIB, WORK_LIB );
338
339 GraalSetCataLibrary();
340 GraalSetWorkLibrary();
341 GraalSetLibraryList();
342
343 rdsend();
344 }
345
346 /*------------------------------------------------------------\
347 | |
348 | GraalGetCataLibrary |
349 | |
350 \------------------------------------------------------------*/
351
GraalGetCataLibrary()352 void GraalGetCataLibrary()
353 {
354 char *NewCata;
355 char *Scan;
356 int Index;
357 int Count;
358 int Length;
359
360 rdsbegin();
361
362 for ( Index = 0;
363 GRAAL_CATA_LIB[ Index ] != (char *)NULL;
364 Index++ )
365 {
366 rdsfreeblock( GRAAL_CATA_LIB[ Index ] );
367 }
368
369 rdsfreeblock( GRAAL_CATA_LIB );
370
371 NewCata = XmTextGetString( GraalLibraryCata );
372
373 Count = 1;
374
375 for ( Index = 0; NewCata[ Index ] != '\0'; Index++ )
376 {
377 if ( NewCata[ Index ] == '\n' )
378 {
379 Count = Count + 1;
380 }
381 }
382
383 GRAAL_CATA_LIB = (char **)rdsallocblock( sizeof(char *) * ( Count + 1 ));
384
385 Count = 0;
386 Scan = NewCata;
387
388 for ( Index = 0; NewCata[ Index ] != '\0'; Index++ )
389 {
390 if ( NewCata[ Index ] == '\n' )
391 {
392 NewCata[ Index ] = '\0';
393
394 Length = strlen( Scan );
395
396 if ( ( Length > 0 ) &&
397 ( GraalIsDirectory( Scan ) ) )
398 {
399 GRAAL_CATA_LIB[ Count ] = rdsallocblock( Length + 1 );
400 strcpy( GRAAL_CATA_LIB[ Count ], Scan );
401 Count = Count + 1;
402 }
403
404 Scan = NewCata + Index + 1;
405 }
406 else
407 if ( NewCata[ Index ] == ' ' )
408 {
409 NewCata[ Index ] = '\0';
410 }
411 }
412
413 Length = strlen( Scan );
414
415 if ( Length > 0 )
416 {
417 GRAAL_CATA_LIB[ Count ] = rdsallocblock( Length + 1 );
418 strcpy( GRAAL_CATA_LIB[ Count ], Scan );
419 Count = Count + 1;
420 }
421
422 GRAAL_CATA_LIB[ Count ] = (char *)NULL;
423
424 rdsend();
425 }
426
427 /*------------------------------------------------------------\
428 | |
429 | GraalGetWorkLibrary |
430 | |
431 \------------------------------------------------------------*/
432
GraalGetWorkLibrary()433 void GraalGetWorkLibrary()
434 {
435 char *NewWork;
436
437 rdsbegin();
438
439 rdsfreeblock( GRAAL_WORK_LIB );
440
441 NewWork = XmTextGetString( GraalLibraryWork );
442
443 if ( GraalIsDirectory( NewWork ) )
444 {
445 GRAAL_WORK_LIB = rdsallocblock( strlen( NewWork ) + 1 );
446 strcpy( GRAAL_WORK_LIB, NewWork );
447 }
448
449 rdsend();
450 }
451
452 /*------------------------------------------------------------\
453 | |
454 | CallbackLibraryList |
455 | |
456 \------------------------------------------------------------*/
457
CallbackLibraryList(MyWidget,ClientData,CallData)458 void CallbackLibraryList( MyWidget, ClientData, CallData )
459
460 Widget MyWidget;
461 caddr_t ClientData;
462 XmListCallbackStruct *CallData;
463 {
464 rdsbegin();
465
466 GRAAL_DEFAULT_LIB = GRAAL_CATA_LIB[ CallData->item_position - 1 ];
467
468 if ( GRAAL_DEFAULT_LIB == (char *)NULL )
469 {
470 GRAAL_DEFAULT_LIB = GRAAL_WORK_LIB;
471 }
472
473 rdsend();
474 }
475
476 /*------------------------------------------------------------\
477 | |
478 | CallbackLibraryOk |
479 | |
480 \------------------------------------------------------------*/
481
CallbackLibraryOk(MyWidget,ClientData,CallData)482 void CallbackLibraryOk( MyWidget, ClientData, CallData )
483
484 Widget MyWidget;
485 caddr_t ClientData;
486 caddr_t CallData;
487 {
488 XmString Label;
489 int Index;
490
491 rdsbegin();
492
493 GraalExitPanel( &GraalLibraryPanel );
494
495 GraalExitDialog();
496
497 if ( GraalFirstLibrary == 0 )
498 {
499 for ( Index = 0;
500 CATA_LIB[ Index ] != (char *)NULL;
501 Index++ )
502 {
503 rdsfreeblock( CATA_LIB[ Index ] );
504 }
505
506 rdsfreeblock( CATA_LIB );
507 rdsfreeblock( WORK_LIB );
508 }
509
510 GraalFirstLibrary = 0;
511
512 CATA_LIB = GRAAL_CATA_LIB;
513 WORK_LIB = GRAAL_WORK_LIB;
514
515 if ( GRAAL_DEFAULT_LIB != (char *)NULL )
516 {
517 Label = XmStringCreateSimple( GRAAL_DEFAULT_LIB );
518
519 XtVaSetValues( GraalFileOpenDialog.WIDGET,
520 XmNdirectory, Label, NULL );
521
522 XtVaSetValues( GraalChangeInstanceModelDialog.WIDGET,
523 XmNdirectory, Label, NULL );
524
525 XtVaSetValues( GraalToolsLoadErrorDialog.WIDGET,
526 XmNdirectory, Label, NULL );
527
528 XmStringFree( Label );
529 }
530
531 rdsend();
532 }
533
534 /*------------------------------------------------------------\
535 | |
536 | CallbackLibraryUpdate |
537 | |
538 \------------------------------------------------------------*/
539
CallbackLibraryUpdate(MyWidget,ClientData,CallData)540 void CallbackLibraryUpdate( MyWidget, ClientData, CallData )
541
542 Widget MyWidget;
543 caddr_t ClientData;
544 caddr_t CallData;
545 {
546 rdsbegin();
547
548 GraalGetCataLibrary();
549 GraalGetWorkLibrary();
550 GraalSetLibraryList();
551
552 rdsend();
553 }
554
555 /*------------------------------------------------------------\
556 | |
557 | CallbackLibraryCancel |
558 | |
559 \------------------------------------------------------------*/
560
CallbackLibraryCancel(MyWidget,ClientData,CallData)561 void CallbackLibraryCancel( MyWidget, ClientData, CallData )
562
563 Widget MyWidget;
564 caddr_t ClientData;
565 caddr_t CallData;
566 {
567 int Index;
568
569 rdsbegin();
570
571 for ( Index = 0;
572 GRAAL_CATA_LIB[ Index ] != (char *)NULL;
573 Index++ )
574 {
575 rdsfreeblock( GRAAL_CATA_LIB[ Index ] );
576 }
577
578 rdsfreeblock( GRAAL_CATA_LIB );
579 rdsfreeblock( GRAAL_WORK_LIB );
580
581 GraalExitPanel( &GraalLibraryPanel );
582
583 GraalExitDialog();
584
585 rdsend();
586 }
587
588 /*------------------------------------------------------------\
589 | |
590 | CallbackEnterLibrary |
591 | |
592 \------------------------------------------------------------*/
593
CallbackEnterLibrary(MyWidget,ClientData,CallData)594 void CallbackEnterLibrary( MyWidget, ClientData, CallData )
595
596 Widget MyWidget;
597 caddr_t ClientData;
598 caddr_t CallData;
599 {
600 rdsbegin();
601
602 GraalInitializeLibrary();
603
604 GraalEnterPanel( &GraalLibraryPanel );
605 GraalLimitedLoop( GraalLibraryPanel.PANEL );
606 GraalReEnterDialog();
607
608 rdsend();
609 }
610
611 /*------------------------------------------------------------\
612 | |
613 | GraalBuildPanelLibrary |
614 | |
615 \------------------------------------------------------------*/
616
GraalBuildPanelLibrary()617 void GraalBuildPanelLibrary()
618 {
619 Arg Args[15];
620 XmString Label;
621
622 rdsbegin();
623
624 XtSetArg( Args[0], XmNshadowType , XmSHADOW_ETCHED_IN );
625 XtSetArg( Args[1], XmNdeleteResponse, XmDO_NOTHING );
626 XtSetArg( Args[2], XmNtitle , GraalLibraryPanel.TITLE );
627
628 GraalLibraryPanel.PANEL =
629
630 XmCreateFormDialog( GraalMainWindow, "GraalLibraryPanel", Args, 3);
631
632 XtAddCallback( GraalLibraryPanel.PANEL, XmNdestroyCallback,
633 GraalDestroyDialogCallback, NULL );
634
635 GraalLibraryPanel.PANEL_FORM =
636
637 XtVaCreateManagedWidget( "GraalLibraryPanelForm",
638 xmFormWidgetClass,
639 GraalLibraryPanel.PANEL,
640 XmNtopAttachment , XmATTACH_FORM,
641 XmNbottomAttachment , XmATTACH_FORM,
642 XmNleftAttachment , XmATTACH_FORM,
643 XmNrightAttachment , XmATTACH_FORM,
644 XmNfractionBase , 10,
645 NULL
646 );
647
648 GraalLibraryPanel.FRAME =
649
650 XtVaCreateManagedWidget( "GraalLibraryFrame",
651 xmFrameWidgetClass,
652 GraalLibraryPanel.PANEL_FORM,
653 XmNtopAttachment , XmATTACH_FORM,
654 XmNbottomAttachment , XmATTACH_FORM,
655 XmNleftAttachment , XmATTACH_FORM,
656 XmNrightAttachment , XmATTACH_FORM,
657 NULL
658 );
659
660 GraalLibraryPanel.FORM =
661
662 XtVaCreateManagedWidget( "GraalLibraryForm",
663 xmFormWidgetClass,
664 GraalLibraryPanel.FRAME,
665 XmNtopAttachment , XmATTACH_FORM,
666 XmNbottomAttachment , XmATTACH_FORM,
667 XmNleftAttachment , XmATTACH_FORM,
668 XmNrightAttachment , XmATTACH_FORM,
669 XmNfractionBase , 120,
670 NULL
671 );
672
673 GraalLibraryButtonUpdate =
674
675 XtVaCreateManagedWidget( "Update",
676 xmPushButtonWidgetClass,
677 GraalLibraryPanel.FORM,
678 XmNleftAttachment , XmATTACH_POSITION,
679 XmNleftPosition , 10,
680 XmNrightAttachment , XmATTACH_POSITION,
681 XmNrightPosition , 40,
682 XmNtopAttachment , XmATTACH_POSITION,
683 XmNtopPosition , 105,
684 XmNbottomAttachment , XmATTACH_POSITION,
685 XmNbottomPosition , 115,
686 NULL
687 );
688
689 GraalLibraryButtonOk =
690
691 XtVaCreateManagedWidget( "Ok",
692 xmPushButtonWidgetClass,
693 GraalLibraryPanel.FORM,
694 XmNleftAttachment , XmATTACH_POSITION,
695 XmNleftPosition , 50,
696 XmNrightAttachment , XmATTACH_POSITION,
697 XmNrightPosition , 70,
698 XmNtopAttachment , XmATTACH_POSITION,
699 XmNtopPosition , 105,
700 XmNbottomAttachment , XmATTACH_POSITION,
701 XmNbottomPosition , 115,
702 NULL
703 );
704
705 GraalLibraryButtonCancel =
706
707 XtVaCreateManagedWidget( "Cancel",
708 xmPushButtonWidgetClass,
709 GraalLibraryPanel.FORM,
710 XmNleftAttachment , XmATTACH_POSITION,
711 XmNleftPosition , 80,
712 XmNrightAttachment , XmATTACH_POSITION,
713 XmNrightPosition , 110,
714 XmNtopAttachment , XmATTACH_POSITION,
715 XmNtopPosition , 105,
716 XmNbottomAttachment , XmATTACH_POSITION,
717 XmNbottomPosition , 115,
718 NULL
719 );
720
721 Label = XmStringCreateSimple( "Directories" );
722
723 GraalLibraryListLabel =
724
725 XtVaCreateManagedWidget( "GraalLibraryListLabel",
726 xmLabelGadgetClass ,
727 GraalLibraryPanel.FORM,
728 XmNlabelString , Label,
729 XmNleftAttachment , XmATTACH_POSITION,
730 XmNleftPosition , 5,
731 XmNtopAttachment , XmATTACH_POSITION,
732 XmNtopPosition , 5,
733 XmNbottomAttachment , XmATTACH_POSITION,
734 XmNbottomPosition , 10,
735 NULL );
736
737 XmStringFree( Label );
738
739 XtSetArg( Args[0] , XmNtopAttachment , XmATTACH_POSITION );
740 XtSetArg( Args[1] , XmNtopPosition , 10 );
741 XtSetArg( Args[2] , XmNbottomAttachment , XmATTACH_POSITION );
742 XtSetArg( Args[3] , XmNbottomPosition , 40 );
743 XtSetArg( Args[4] , XmNrightAttachment , XmATTACH_POSITION );
744 XtSetArg( Args[5] , XmNrightPosition , 115 );
745 XtSetArg( Args[6] , XmNleftAttachment , XmATTACH_POSITION );
746 XtSetArg( Args[7] , XmNleftPosition , 5 );
747 XtSetArg( Args[8] , XmNscrollBarDisplayPolicy, XmSTATIC );
748 XtSetArg( Args[9] , XmNscrollHorizontal , True );
749 XtSetArg( Args[10] , XmNscrollVertical , True );
750 XtSetArg( Args[11] , XmNlistSizePolicy , XmCONSTANT );
751
752 GraalLibraryList =
753
754 XmCreateScrolledList( GraalLibraryPanel.FORM,
755 "GraalLibraryList", Args, 12 );
756
757 Label = XmStringCreateSimple( "Catalog libraries" );
758
759 GraalLibraryCataLabel =
760
761 XtVaCreateManagedWidget( "GraalLibraryCataLabel",
762 xmLabelGadgetClass ,
763 GraalLibraryPanel.FORM,
764 XmNlabelString , Label,
765 XmNleftAttachment , XmATTACH_POSITION,
766 XmNleftPosition , 5,
767 XmNtopAttachment , XmATTACH_POSITION,
768 XmNtopPosition , 45,
769 XmNbottomAttachment , XmATTACH_POSITION,
770 XmNbottomPosition , 50,
771 NULL );
772
773 XmStringFree( Label );
774
775 XtSetArg( Args[0] , XmNrows , 4 );
776 XtSetArg( Args[1] , XmNeditable , True );
777 XtSetArg( Args[2] , XmNcursorPositionVisible , True );
778 XtSetArg( Args[3] , XmNscrollHorizontal , True );
779 XtSetArg( Args[4] , XmNscrollVertical , True );
780 XtSetArg( Args[5] , XmNeditMode , XmMULTI_LINE_EDIT );
781 XtSetArg( Args[6] , XmNtopAttachment , XmATTACH_POSITION );
782 XtSetArg( Args[7] , XmNtopPosition , 50 );
783 XtSetArg( Args[8] , XmNleftAttachment , XmATTACH_POSITION );
784 XtSetArg( Args[9] , XmNleftPosition , 5 );
785 XtSetArg( Args[10] , XmNrightAttachment , XmATTACH_POSITION );
786 XtSetArg( Args[11] , XmNrightPosition , 115 );
787 XtSetArg( Args[12] , XmNbottomAttachment , XmATTACH_POSITION );
788 XtSetArg( Args[13] , XmNbottomPosition , 80 );
789
790 GraalLibraryCata =
791
792 XmCreateScrolledText( GraalLibraryPanel.FORM,
793 "GraalLibraryCata", Args, 14 );
794
795 Label = XmStringCreateSimple( "Work library" );
796
797 GraalLibraryWorkLabel =
798
799 XtVaCreateManagedWidget( "GraalLibraryWorkLabel",
800 xmLabelGadgetClass ,
801 GraalLibraryPanel.FORM,
802 XmNlabelString , Label,
803 XmNleftAttachment , XmATTACH_POSITION,
804 XmNleftPosition , 5,
805 XmNtopAttachment , XmATTACH_POSITION,
806 XmNtopPosition , 85,
807 XmNbottomAttachment , XmATTACH_POSITION,
808 XmNbottomPosition , 90,
809 NULL );
810 XmStringFree( Label );
811
812 XtSetArg( Args[0] , XmNrows , 1 );
813 XtSetArg( Args[1] , XmNeditable , True );
814 XtSetArg( Args[2] , XmNeditMode , XmSINGLE_LINE_EDIT );
815 XtSetArg( Args[3] , XmNscrollHorizontal , False );
816 XtSetArg( Args[4] , XmNscrollVertical , False );
817 XtSetArg( Args[5] , XmNcursorPositionVisible , True );
818 XtSetArg( Args[6] , XmNtopAttachment , XmATTACH_POSITION );
819 XtSetArg( Args[7] , XmNtopPosition , 90 );
820 XtSetArg( Args[8] , XmNleftAttachment , XmATTACH_POSITION );
821 XtSetArg( Args[9] , XmNleftPosition , 5 );
822 XtSetArg( Args[10] , XmNrightAttachment , XmATTACH_POSITION );
823 XtSetArg( Args[11] , XmNrightPosition , 115 );
824 XtSetArg( Args[12] , XmNbottomAttachment , XmATTACH_POSITION );
825 XtSetArg( Args[13] , XmNbottomPosition , 100 );
826
827 GraalLibraryWork =
828
829 XmCreateText( GraalLibraryPanel.FORM,
830 "GraalLibraryWork", Args, 14 );
831
832 XtManageChild( GraalLibraryWork );
833 XtManageChild( GraalLibraryList );
834 XtManageChild( GraalLibraryCata );
835
836 XtAddCallback( GraalLibraryList,
837 XmNdefaultActionCallback,
838 CallbackLibraryList, NULL );
839
840 XtAddCallback( GraalLibraryButtonOk,
841 XmNactivateCallback,
842 CallbackLibraryOk, NULL );
843
844 XtAddCallback( GraalLibraryButtonCancel,
845 XmNactivateCallback,
846 CallbackLibraryCancel, NULL );
847
848 XtAddCallback( GraalLibraryButtonUpdate,
849 XmNactivateCallback,
850 CallbackLibraryUpdate, NULL );
851
852 XtVaSetValues( GraalLibraryPanel.PANEL,
853 XmNheight, GraalLibraryPanel.HEIGHT,
854 XmNwidth , GraalLibraryPanel.WIDTH,
855 XmNx , GraalLibraryPanel.X,
856 XmNy , GraalLibraryPanel.Y,
857 NULL );
858
859 Label = XmStringCreateSimple( "Library" );
860
861 XtVaSetValues( XmFileSelectionBoxGetChild( GraalFileOpenDialog.WIDGET,
862 XmDIALOG_HELP_BUTTON ),
863 XmNlabelString, Label, NULL );
864
865 XtVaSetValues( XmFileSelectionBoxGetChild( GraalChangeInstanceModelDialog.WIDGET,
866 XmDIALOG_HELP_BUTTON ),
867 XmNlabelString, Label, NULL );
868
869 XtVaSetValues( XmFileSelectionBoxGetChild( GraalToolsLoadErrorDialog.WIDGET,
870 XmDIALOG_HELP_BUTTON ),
871 XmNlabelString, Label, NULL );
872
873 XmStringFree( Label );
874
875 XtAddCallback( XmFileSelectionBoxGetChild( GraalFileOpenDialog.WIDGET,
876 XmDIALOG_HELP_BUTTON ),
877 XmNactivateCallback, CallbackEnterLibrary, NULL );
878
879 XtAddCallback( XmFileSelectionBoxGetChild( GraalChangeInstanceModelDialog.WIDGET,
880 XmDIALOG_HELP_BUTTON ),
881 XmNactivateCallback, CallbackEnterLibrary, NULL );
882
883 XtAddCallback( XmFileSelectionBoxGetChild( GraalToolsLoadErrorDialog.WIDGET,
884 XmDIALOG_HELP_BUTTON ),
885 XmNactivateCallback, CallbackEnterLibrary, NULL );
886 rdsend();
887 }
888