2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these libraries and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: selectxlfd.c /main/3 1996/10/14 14:45:17 barstow $ */
25 * All Rights Reserved, Copyright (c) FUJITSU LIMITED 1995
34 #include <sys/types.h>
48 #include <Xm/SeparatoG.h>
50 #include <Xm/ToggleB.h>
51 #include <Xm/MessageB.h>
55 #include "selectxlfd.h"
58 char *shell_n[] = { "pop0", "pop1", "pop2", "pop3" } ;
59 char *list_n[] = { "list0", "list1", "list2", "list3" } ;
63 #define Dprintf fprintf
69 * There is no public header file for this function (only an
70 * internal header XmStringI.h).
72 extern XtPointer _XmStringUngenerate (XmString string,
75 XmTextType output_type);
83 extern char *maintitle;
92 char *fullPathName = NULL ;
94 FalFontDataList *font_L ;
95 FalxCodeList *CodeList ;
96 FalxStyleList *StyleList ;
97 FalxSizeList *SizeList ;
98 FalxUdcArea *UdcArea ;
103 FalxFontDataBuff KeyBuff ;
106 void PopupSelectXLFD() ;
108 Widget xlfdDialog, xlfdWform,
109 slctBLabel[BUTTONITEMS],slctBText[BUTTONITEMS], slctButton[BUTTONITEMS],
110 listPop[BUTTONITEMS], listW[BUTTONITEMS],
111 separatorW, errorMD, msgBox ;
112 extern Widget cpyDialog ;
114 extern Widget toplevel;
121 int fontcheck(char *fontfile, char *mode)
123 * If fontfile can't be opend, return -1.
124 * If fontfile is editted by other UDC client, return 1.
130 if (strcmp(mode, "r") == 0) {
131 if ((chk_fd = open(fontfile, O_RDONLY)) < 0) {
134 } else if (strcmp(mode, "w") == 0) {
135 if ((chk_fd = open(fontfile, O_RDWR)) < 0) {
139 if (isLock(chk_fd) == 1) {
147 void setallcode(ListData *ld)
149 int i, code, codenum;
154 for (i = 0; i < UdcAreaCount; i++) {
155 codenum += (abs(UdcArea[i].udc_end - UdcArea[i].udc_start) + 1);
158 ld->allcode = (int *) calloc(codenum, sizeof(int));
159 ld->allcode_num = codenum;
161 for (i = 0; i < UdcAreaCount; i++) {
162 code1 = smaller(UdcArea[i].udc_start, UdcArea[i].udc_end);
163 code2 = bigger(UdcArea[i].udc_start, UdcArea[i].udc_end);
164 for (code = code1; code <= code2; code++) {
171 FalFontID openfont(void)
173 int protect_key = FAL_FONT_DISPLAY;
178 codeset = font_L->list[0].cd_set;
179 if ((fontid = FalOpenFont(fullPathName, protect_key, codeset))
181 fprintf(stderr, "FalOpenFont error\n");
182 return ((FalFontID) NULL);
187 void makelist(ListData *ld)
191 int *existcodep, *allcodep;
194 /* FalFontinfo fontinfo;*/
196 /* FalQueryFont(fid, &fontinfo);*/
198 ld->existcode = (int *) calloc(ld->allcode_num, sizeof(int));
199 existcodep = ld->existcode ;
200 allcodep = ld->allcode;
202 for (i = 0; i < ld->allcode_num; i++) {
204 pattern = FalReadFont(fid, code, NULL, NULL);
205 if (fal_utyexists == 0) {
206 *existcodep = *allcodep;
212 ld->existcode_num = existcode_num;
215 void setexistcode(ListData *ld)
217 int *codep, *allcodep;
235 if ((0 <= num) && (num <= 9))
237 else if ((10 <= num) && (num <= 15))
238 c = 'a' + (num - 10);
240 fprintf(stderr,"error in i2c\n");
260 buf[i] = i2c(tmp % 16);
264 number = (char *) calloc(len+3, sizeof(char));
268 for (i = len - 1; i >= 0; i--) {
276 void setexistcode_c(ListData *ld)
282 if (ld->existcode_num == 0) {
286 ld->existcode_c = (char **) calloc(ld->existcode_num, sizeof(char *));
287 code_cp = ld->existcode_c;
288 codep = ld->existcode;
289 for (i = 0; i < ld->existcode_num; i++) {
290 *code_cp = i2s(*codep);
296 void getexistcode(ListData *ld)
305 /****************************************************************
307 ***************************************************************/
310 * pop up and down dialog box
314 xlfdPopupDialog(Widget w)
316 if (! XtIsManaged(w))
319 XRaiseWindow(XtDisplayOfObject(w), XtWindow(XtParent(w)));
323 xlfdPopdownDialog(Widget w)
335 GetPixelWidth(Widget w, int columns, Dimension *width)
338 XtSetArg( args[0], XmNwidth, width ) ;
339 XtGetValues( w , args, 1 ) ;
340 return( *width / (Dimension)columns ) ;
344 /****************************************************************
346 ***************************************************************/
348 void quit(Widget w, caddr_t *client_data, caddr_t *call_data)
353 msg = GETMESSAGE(6, 2, "Do you want to terminate udcexchange?");
355 AskUser(ed->toplevel, ed, msg, &ans, "question");
356 if (ans == 1) {/* terminate ok */
357 FalxFreeCodeList( CodeList ) ;
358 FalxFreeStyleList( StyleList ) ;
359 FalxFreeSizeList( SizeList ) ;
360 FalxFreeFontList( font_L ) ;
370 ClearText(int num, Widget *slctBText)
373 /* toggle button unset */
374 for( i=0; i<BUTTONITEMS; i++ ){
376 XmTextSetString( slctBText[i], "" );
383 ClearButtons(int num, Widget *slctButton)
388 /* toggle button unset */
389 for( i=0; i<BUTTONITEMS; i++ ){
392 XtSetArg( args[cnt], XmNset, &isSet ); cnt++;
393 XtGetValues( slctButton[i], args, cnt );
396 XtSetArg( args[cnt], XmNset, False ); cnt++;
397 XtSetValues( slctButton[i], args, cnt );
407 * get text field position
419 Position tbx, tby, tx, ty ;
424 XtSetArg(args[i], XmNx, &tbx ); i++;
425 XtSetArg(args[i], XmNy, &tby ); i++;
426 XtGetValues( xlfdDialog, args, i);
428 XtSetArg(args[i], XmNx, &tx ); i++;
429 XtSetArg(args[i], XmNy, &ty ); i++;
430 XtSetArg(args[i], XmNheight, &theight ); i++;
431 if( num==BUTTONITEMS-1 )
432 XtGetValues( slctBText[num], args, i ) ;
434 XtGetValues( XtParent(slctBText[num]), args, i ) ; /* ScrolledText */
435 /* determine the position of list */
437 if( num==BUTTONITEMS-1 ){
438 *y = ty + tby + (Position)theight + 14 + CY ;
440 *y = ty + tby + (Position)theight + CY ;
443 for( i=0; i<BUTTONITEMS; i++ ){
444 if( XtIsManaged( listPop[i] ) ) XtUnmanageChild( listPop[i] );
446 if( !XtIsManaged( listPop[num] ) ) XtManageChild( listPop[num] );
454 void listEH(Widget w, int num, XButtonEvent *event)
456 int i, j, ITEM_COUNT;
468 rtn = GetItemsToDisplay( num, &ITEM_COUNT, &xms ) ;
471 fprintf( stderr, "There are no fonts that was required.\n" ) ;
472 XmTextSetString( slctBText[0], " " );
473 ClearText( -1, slctBText ) ;
474 FalxFreeDataBuff( FALX_ALL, &KeyBuff ) ;
480 fprintf( stderr, "GetItemsToDisplay() error.\n" ) ;
484 if( num == 0 && ITEM_COUNT == 1 ){
486 str = (char *) _XmStringUngenerate((XmString) xms[0], NULL,
487 XmMULTIBYTE_TEXT, XmMULTIBYTE_TEXT);
489 XmTextSetString(slctBText[num], str );
492 if( ITEM_COUNT < 0 ){
498 * get text field position
500 GetPositionOfLists( num, xlfdDialog, listPop, slctBText, &x, &y ) ;
503 XtSetArg(args[i], XmNx, x ) ; i++;
504 XtSetArg(args[i], XmNy, y ) ; i++;
505 XtSetValues(listPop[num], args, i );
511 XtSetArg (args[i], XmNitems, xms ); i++;
512 XtSetArg (args[i], XmNitemCount, ITEM_COUNT ); i++;
513 XtSetValues(listW[num], args, i );
518 XtPopup( listPop[num], XtGrabNone );
525 void listPrintCB(Widget w, int num, XmListCallbackStruct *call_data)
529 /* clear text fields and unset buttons */
530 ClearButtons( num, slctButton ) ;
533 str = (char *) _XmStringUngenerate((XmString) call_data->item, NULL,
534 XmMULTIBYTE_TEXT, XmMULTIBYTE_TEXT);
536 XmTextSetString(slctBText[num], str);
541 if( SetKeyBuff( num, str ) ){
546 if( XtIsManaged( listPop[num] ) ) XtUnmanageChild( listPop[num] );
554 void OpenWindow(Widget w, caddr_t client_data, caddr_t *call_data)
563 char *str, buff[512] ;
565 msg = GETMESSAGE(6, 4, "No UDCs exist in this font");
566 msg1 = GETMESSAGE(6, 6, "XLFD name isn't selected");
567 msg2 = GETMESSAGE(6, 8, "Can't open the font file");
568 msg3 = GETMESSAGE(6, 10, "The font file is used by other UDC client.");
570 /* get font file name (str: XLFD name) */
571 str = XmTextGetString( slctBText[0] );
572 if (( str == NULL ) || (strcmp(str, "") == 0)) {
573 AskUser(w, ed, msg1, &ans, "error");
576 if( fullPathName != NULL ){
577 free( fullPathName ) ;
579 SelectedOffset = FalxSearchFontFileName( str, font_L, buff ) ;
580 if( SelectedOffset < 0 ){
583 if( (fullPathName = strdup( buff )) == NULL ){
586 UdcAreaCount = FalxGetGlyphIndexInfo( str, font_L, &UdcArea ) ;
587 if( UdcAreaCount < 0 ){
591 if( fullPathName != NULL ){
592 Dprintf( stderr, "OpenWindow() : full path name = %s\n", fullPathName );
594 for( i=0; i<UdcAreaCount; i++ ){
595 Dprintf( stderr, "OpenWindow() : start(%d) = 0x%x\n", i, UdcArea[i].udc_start );
596 Dprintf( stderr, "OpenWindow() : end (%d) = 0x%x\n", i, UdcArea[i].udc_end );
598 if ((ed->xlfdname = strdup(str)) == NULL) {
601 if ((ed->fontfile = strdup(fullPathName)) == NULL) {
606 if ((ld = (ListData *) malloc(sizeof(ListData))) == NULL) {
607 excerror(ed, EXCERRMALLOC, "selcharcd", "exit");
609 memset(ld, 0x00, sizeof(ListData));
612 if (ed->function == EXPORT) {
613 r = fontcheck(ed->fontfile, "r");
614 if (r == -1) { /* file open error */
615 AskUser(ld->ed->toplevel, ld->ed, msg2, &ans, "error");
617 } else if (r == 1) { /* file is being editted by other UDC client */
618 AskUser(ld->ed->toplevel, ld->ed, msg3, &ans, "error");
621 /* get existing UDC code */
623 if (ld->existcode_num == 0) {
624 AskUser(ld->ed->toplevel, ld->ed, msg, &ans, "error");
627 XtUnmanageChild(xlfdDialog);
629 } else if (ed->function == IMPORT) {
630 r = fontcheck(ed->fontfile, "w");
631 if (r == -1) { /* file open error */
632 AskUser(ld->ed->toplevel, ld->ed, msg2, &ans, "error");
634 } else if (r == 1) { /* file is being editted by other UDC client */
635 AskUser(ld->ed->toplevel, ld->ed, msg3, &ans, "error");
638 /* get existing UDC code */
641 XtUnmanageChild(xlfdDialog);
648 /****************************************************************
649 * functions for create window view
650 ****************************************************************/
652 #define SetLabel( cnt ){ \
654 case 0 : buf = resource.xlfd_label ; break ; \
655 case 1 : buf = resource.code_label ; break ; \
656 case 2 : buf = resource.style_label; break ; \
657 case 3 : buf = resource.size_label ; break ; \
659 xms = XmStringCreateLocalized( buf ); \
664 CreateXLFDLabelAndText(
683 XtSetArg( args[i], XmNx, 20 ) ; i++ ;
684 XtSetArg( args[i], XmNheight, 20 ) ; i++ ;
685 XtSetArg( args[i], XmNtopAttachment, XmATTACH_FORM ) ; i++ ;
686 XtSetArg( args[i], XmNtopOffset, 20 ) ; i++ ;
688 _slctBLabel = XmCreateLabelGadget( owner , "xlfdlabel", args, i );
690 _slctBLabel = XmCreateLabel( owner , "xlfdlabel", args, i );
692 XtManageChild( _slctBLabel );
695 * create text fields to display XLFD font name
698 XtSetArg( args[i], XmNleftAttachment, XmATTACH_FORM ) ; i++ ;
699 XtSetArg( args[i], XmNleftOffset, 20 ) ; i++ ;
700 XtSetArg( args[i], XmNtopAttachment, XmATTACH_WIDGET ); i++ ;
701 XtSetArg( args[i], XmNtopOffset, 5 ) ; i++ ;
702 XtSetArg (args[i], XmNtopWidget, _slctBLabel ); i++;
703 XtSetArg( args[i], XmNcolumns, XLFD_COLUMNS ) ; i++ ;
704 XtSetArg( args[i], XmNspacing, 0 ) ; i++ ;
705 XtSetArg( args[i], XmNeditMode, XmSINGLE_LINE_EDIT ) ; i++ ;
706 XtSetArg( args[i], XmNscrollBarDisplayPolicy, XmAS_NEEDED ) ; i++ ;
707 XtSetArg( args[i], XmNscrollingPolicy, XmAPPLICATION_DEFINED ) ; i++ ;
709 XtSetArg( args[i], XmNscrollingPolicy, XmAUTOMATIC ) ; i++ ;
710 XtSetArg( args[i], XmNlistSizePolicy, XmCONSTANT ) ; i++ ;
712 XtSetArg( args[i], XmNwidth, 600 ) ; i++ ;
713 XtSetArg( args[i], XmNfontList, fixed ) ; i++ ;
714 XtSetArg( args[i], XmNeditable, True ) ; i++ ;
715 XtSetArg( args[i], XmNlistSizePolicy, XmVARIABLE ) ; i++ ;
717 _slctBText = XmCreateScrolledText( owner , "xlfdtext", args, i );
719 XtManageChild( _slctBText );
722 * create XLFD select buttons
725 XtSetArg( args[i], XmNindicatorType, XmONE_OF_MANY ) ; i++ ;
726 XtSetArg (args[i], XmNtopWidget, _slctBText ); i++;
727 XtSetArg( args[i], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ) ; i++ ;
728 XtSetArg( args[i], XmNtopOffset, 15 ) ; i++ ;
729 XtSetArg( args[i], XmNleftAttachment, XmATTACH_WIDGET ) ; i++ ;
730 XtSetArg( args[i], XmNleftWidget, _slctBText ) ; i++ ;
731 XtSetArg( args[i], XmNleftOffset, 5 ) ; i++ ; /* WIDTH */
732 XtSetArg( args[i], XmNrightAttachment, XmATTACH_FORM ) ; i++ ;
733 XtSetArg( args[i], XmNrightOffset, 5 ) ; i++ ; /* WIDTH */
734 xms = XmStringCreateLocalized( "" );
735 XtSetArg( args[i], XmNlabelString, xms ) ; i++ ;
737 _slctButton = XmCreateToggleButtonGadget( owner , "xlfdbtn", args, i);
739 _slctButton = XmCreateToggleButton( owner , "xlfdbtn", args, i);
741 XtManageChild( _slctButton );
743 *slctBLabel = _slctBLabel ;
744 *slctBText = _slctBText ;
745 *slctButton = _slctButton ;
753 CreateOtherLabelAndText(
772 if( num < 1 ) return(0) ;
778 XtSetArg ( args[i], XmNtopWidget,
779 (num==1) ? baseForm : topW ); i++;
780 XtSetArg( args[i], XmNx, 20 ) ; i++ ;
781 XtSetArg( args[i], XmNheight, 20 ) ; i++ ;
782 XtSetArg( args[i], XmNtopAttachment, XmATTACH_WIDGET ) ; i++ ;
784 XtSetArg( args[i], XmNtopOffset, 20 ) ; i++ ;
786 XtSetArg( args[i], XmNtopOffset, 36 ) ; i++ ;
788 XtSetArg( args[i], XmNlabelString, xms ) ; i++ ;
790 _slctBLabel = XmCreateLabelGadget( owner , "label", args, i);
792 _slctBLabel = XmCreateLabel( owner , "label", args, i);
794 XtManageChild( _slctBLabel );
797 * create text fields to display selected keys
800 XtSetArg( args[i], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ) ; i++ ;
801 XtSetArg( args[i], XmNtopOffset, -5 ) ; i++ ;
802 XtSetArg (args[i], XmNtopWidget, _slctBLabel ); i++;
803 XtSetArg( args[i], XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET ) ; i++ ;
804 XtSetArg( args[i], XmNrightOffset, 0 ) ; i++ ;
805 XtSetArg (args[i], XmNrightWidget, baseForm ); i++;
806 XtSetArg( args[i], XmNcolumns, KEY_COLUMNS ) ; i++ ;
807 XtSetArg( args[i], XmNspacing, 0 ) ; i++ ;
808 XtSetArg( args[i], XmNeditMode, XmSINGLE_LINE_EDIT ) ; i++ ;
809 XtSetArg( args[i], XmNscrollBarDisplayPolicy, XmAS_NEEDED ) ; i++ ;
810 XtSetArg( args[i], XmNscrollingPolicy, XmAPPLICATION_DEFINED ) ; i++ ;
812 XtSetArg( args[i], XmNscrollingPolicy, XmAUTOMATIC ) ; i++ ;
813 XtSetArg( args[i], XmNlistSizePolicy, XmCONSTANT ) ; i++ ;
815 XtSetArg( args[i], XmNfontList, fixed ) ; i++ ;
816 XtSetArg( args[i], XmNlistSizePolicy, XmVARIABLE ) ; i++ ;
818 if( num==BUTTONITEMS-1 )
819 _slctBText = XmCreateText( owner , "text" , args, i );
821 _slctBText = XmCreateScrolledText( owner , "text" , args, i );
823 XtManageChild( _slctBText );
826 * create select buttons
829 XtSetArg( args[i], XmNindicatorType, XmONE_OF_MANY ) ; i++ ;
830 XtSetArg( args[i], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ) ; i++ ;
831 XtSetArg( args[i], XmNtopOffset, 5 ) ; i++ ;
832 XtSetArg (args[i], XmNtopWidget, _slctBLabel ); i++;
833 XtSetArg( args[i], XmNleftAttachment, XmATTACH_WIDGET ) ; i++ ;
834 XtSetArg( args[i], XmNleftWidget, _slctBText ) ; i++ ;
835 XtSetArg( args[i], XmNleftOffset, 5 ) ; i++ ; /* WIDTH */
836 xms = XmStringCreateLocalized( "" );
837 XtSetArg( args[i], XmNlabelString, xms ) ; i++ ;
839 _slctButton = XmCreateToggleButtonGadget( owner , "button", args, i);
841 _slctButton = XmCreateToggleButton( owner , "button", args, i);
843 XtManageChild( _slctButton );
845 *slctBLabel = _slctBLabel ;
846 *slctBText = _slctBText ;
847 *slctButton = _slctButton ;
853 * create pop up lists
858 xlfdCreateScrolledList (Widget owner, char *name, Arg *args, int n)
862 XtSetArg( args[n], XmNselectionPolicy, XmSINGLE_SELECT ) ;n++ ;
863 XtSetArg( args[n], XmNlistSpacing, 4 ) ; n++ ;
864 XtSetArg( args[n], XmNlistSizePolicy, XmCONSTANT ) ; n++ ;
865 XtSetArg( args[n], XmNscrollBarDisplayPolicy, XmAS_NEEDED ) ; n++ ;
866 listW = XmCreateScrolledList( owner, name, args, n );
868 XtManageChild( listW );
877 * create selection window view
880 PopupSelectXLFD(Widget top)
887 Dimension pix, xwidth, kwidth ;
889 if( xlfdDialog == NULL ){
894 XtSetArg( args[n], XmNautoUnmanage, False ) ; n++ ;
895 XtSetArg( args[n], XmNtitle, maintitle ) ; n++ ;
896 XtSetArg( args[n], XmNnoResize, True ) ; n++ ;
897 xms = XmStringCreateLocalized( resource.exec_label ) ;
898 XtSetArg( args[n], XmNokLabelString, xms ) ; n++ ;
899 xms = XmStringCreateLocalized( resource.quit_label) ;
900 XtSetArg( args[n], XmNhelpLabelString, xms ) ; n++ ;
901 Dprintf( stdout, "(PopupSelectXLFD)XmCreateTemplateDialog: start\n" ) ;
902 xlfdDialog = XmCreateTemplateDialog( top, "SelectDialog", args, n );
903 Dprintf( stdout, "(PopupSelectXLFD)XmCreateTemplateDialog: end\n" ) ;
906 xlfdWform = XmCreateForm( xlfdDialog, "BaseForm", args, n );
907 XtManageChild( xlfdWform );
911 * create XLFD columns
913 Dprintf( stdout, "(PopupSelectXLFD)CreateXLFDLabelAndText : start\n" ) ;
914 CreateXLFDLabelAndText( xlfdWform ,
915 &slctBLabel[0], &slctBText[0], &slctButton[0] ) ;
918 XtSetArg( args[n], XmNlabelString, xms ) ; n++ ;
919 XtSetValues( slctBLabel[0], args, n ) ;
920 Dprintf( stdout, "(PopupSelectXLFD)CreateXLFDLabelAndText : end\n" ) ;
923 * create other key columns
925 Dprintf( stdout, "(PopupSelectXLFD)CreateOtherLabelAndText :start\n" ) ;
926 for( j=1; j<BUTTONITEMS; j++ ){
927 CreateOtherLabelAndText( j, xlfdWform, slctBText[0],
928 &slctBLabel[j], slctBLabel[j-1], &slctBText[j], &slctButton[j] ) ;
930 Dprintf( stdout, "(PopupSelectXLFD)CreateOtherLabelAndText : end\n" ) ;
932 /* set bottom offsets */
934 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ) ; n++ ;
935 XtSetArg( args[n], XmNbottomOffset, 36 ) ; n++ ;
936 XtSetValues( slctBLabel[BUTTONITEMS-1], args, n ) ;
939 pix = GetPixelWidth( slctBText[0], XLFD_COLUMNS, &xwidth ) ;
940 /* xwidth += pix / 2 ; */
941 kwidth = pix * KEY_COLUMNS + pix / 2 ;
944 * create popup shells
946 for( j=0; j<BUTTONITEMS; j++ ) {
948 listPop[j] = XtCreatePopupShell( shell_n[j], overrideShellWidgetClass,
949 xlfdWform , args, n );
955 for( j=0; j<BUTTONITEMS; j++ ) {
957 XtSetArg( args[n], XmNvisibleItemCount, (j==0)? 10 : 5 ) ; n++ ;
959 XtSetArg( args[n], XmNwidth, xwidth ) ; n++ ;
961 XtSetArg( args[n], XmNwidth, kwidth ) ; n++ ;
962 XtSetArg( args[n], XmNlistMarginWidth, 0 ) ; n++ ;
964 listW[j] = xlfdCreateScrolledList( listPop[j], list_n[j], args, n );
972 XtSetArg( args[n], XmNokLabelString, "OK" ) ; n++ ;
973 XtSetArg( args[n], XmNcancelLabelString,"Cancel" ) ; n++ ;
974 errorMD = XmCreateMessageDialog(toplevel, "ed0", NULL, 0);
976 msgBox = XmMessageBoxGetChild(errorMD, XmDIALOG_HELP_BUTTON);
977 XtUnmanageChild(msgBox);
983 for( i=0; i<BUTTONITEMS; i++ )
984 XtAddEventHandler( slctButton[i], ButtonReleaseMask, False, (XtEventHandler) listEH, (XtPointer) i );
986 for( i=0; i<BUTTONITEMS; i++ )
987 XtAddCallback(listW[i], XmNsingleSelectionCallback, (XtCallbackProc) listPrintCB, (XtPointer) i );
989 XtAddCallback( xlfdDialog, XmNokCallback, (XtCallbackProc) OpenWindow, NULL );
990 XtAddCallback( xlfdDialog, XmNhelpCallback,(XtCallbackProc) quit,NULL );
993 XtAddCallback( errorMD, XmNcancelCallback, (XtCallbackProc) quit, NULL);
998 * pop up select window
1000 Dprintf( stdout, "(PopupSelectXLFD)xlfdPopupDialog : start\n" ) ;
1001 xlfdPopupDialog( xlfdDialog );
1002 Dprintf( stdout, "(PopupSelectXLFD)xlfdPopupDialog : end\n" ) ;
1003 Dprintf( stdout, " : end\n" ) ;