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 librararies and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* cpyx.c 1.29 - Fujitsu source for CDEnext 96/10/30 13:13:45 */
24 /* $XConsortium: cpyx.c /main/8 1996/11/08 01:52:55 cde-fuj $ */
26 * (c) Copyright 1995 FUJITSU LIMITED
27 * This is source code modified by FUJITSU LIMITED under the Joint
28 * Development Agreement for the CDEnext PST.
29 * This is unpublished proprietary source code of FUJITSU LIMITED
45 * There is no public header file for this function (only an
46 * internal header XmStringI.h).
48 extern XtPointer _XmStringUngenerate (XmString string,
51 XmTextType output_type);
54 #include "selectxlfd.h"
55 #include "xoakufont.h"
59 #define ReadXpm XpmCreatePixmapFromData
61 #define ReadXpm _DtXpmCreatePixmapFromData
63 #include "pixmaps/arrow.pm"
65 static Widget CreateCopyXLFD() ;
66 static void CpyXLFDCB() ;
68 extern int CreateOtherLabelAndText();
69 extern Widget xlfdCreateScrolledList();
70 extern int GetItemsToDisplay();
72 extern void xlfdPopupDialog();
74 extern void InitCpyPtn() ;
77 extern void PopdownCpyPtn() ;
78 extern void AddPopupProc() ;
80 extern FalFontData fullFontData;
86 FalFontData copyFontData;
88 extern Widget toplevel ;
89 Widget cpyDialog=NULL;
90 static Widget codeLabel[COPYLABELS];
91 static Widget codeText[COPYLABELS+1];
93 extern TextField SrcTf;
94 extern TextField DestTf;
96 extern char AreaStr[160];
101 extern Resource resource ;
103 #define CS0 "Codeset 0"
104 #define CS1 "Codeset 1"
105 #define CS2 "Codeset 2"
106 #define CS3 "Codeset 3"
108 #define FAL_ERROR_STR resource.falerrmsg[((fal_utyerrno & 0xff) > 25) ? 0 : (fal_utyerrno & 0xff)]
110 static Widget pull1, pull2, pull3, pull4, scrolllist;
111 static int xlf_count = 0;
112 static XmString *xlf=NULL;
113 static int udc_count = 0;
114 static Boolean udc_flag = False;
115 static int *udc=NULL;
117 static int sty_count = 0;
118 static Boolean sty_flag = False;
119 static char **sty=NULL;
120 static char *sty_val=NULL;
121 static int wls_count = 0;
122 static Boolean wls_flag = False;
123 static int *wls=NULL;
125 static int hls_count = 0;
126 static Boolean hls_flag = False;
127 static int *hls=NULL;
129 static Widget *button1=NULL;
130 static Widget *button2=NULL;
131 static Widget *button3=NULL;
132 static Widget *button4=NULL;
133 static Widget focus_widget=NULL;
135 /****************************************************************
137 ***************************************************************/
142 CpyXLFDCB(w, client_data, call_data)
144 caddr_t client_data, *call_data;
148 /* get font file name (str: XLFD name) */
149 /* get font file name (str: XLFD name) */
150 XtVaGetValues(scrolllist, XmNselectedItems, &st, NULL);
152 copyFontData.xlfdname = NULL;
155 str = _XmStringUngenerate(st[0], NULL, XmMULTIBYTE_TEXT, XmMULTIBYTE_TEXT);
156 copyFontData.xlfdname = str;
158 copyFontData.cd_set = udc_val;
160 copyFontData.cd_set = -1;
167 if( cpyDialog == NULL )
169 CreateCopyXLFD( toplevel ) ;
174 XtAddCallback(cpyDialog, XmNokCallback, (XtCallbackProc)_unmap, NULL);
175 XtAddCallback(cpyDialog, XmNokCallback,
176 (XtCallbackProc)CpyXLFDCB, NULL);
177 XtAddCallback(cpyDialog, XmNokCallback, (XtCallbackProc)CpyCB, NULL);
179 XtAddCallback(cpyDialog, XmNcancelCallback,
180 (XtCallbackProc)_unmap, (XtPointer)1);
181 XtAddCallback(cpyDialog, XmNcancelCallback,
182 (XtCallbackProc)CpyXLFDCB, (XtPointer)1);
183 XtAddCallback(cpyDialog, XmNcancelCallback,
184 (XtCallbackProc)CpyCB, (XtPointer)1);
185 XtAddCallback(cpyDialog, XmNhelpCallback, (XtCallbackProc)_unmap, NULL);
186 XtAddCallback(cpyDialog, XmNhelpCallback,
187 (XtCallbackProc)PopdownCpyPtn, NULL);
189 AddPopupProc( cpyDialog, InitCpyPtn ) ;
191 SrcTf.w1 = codeText[0] ;
192 SrcTf.w2 = codeText[1] ;
193 DestTf.w1 = codeText[2] ;
197 xlfdPopupDialog( cpyDialog );
204 int mask = FAL_FONT_MASK_DEFINED | FAL_FONT_MASK_UNDEFINED;
206 FalFontDataList *fontlist;
210 if (udc_flag == True) {
211 key.cd_set = udc_val;
212 mask |= FAL_FONT_MASK_CODE_SET;
214 if (sty_flag == True) {
215 key.style.name = sty_val;
216 mask |= FAL_FONT_MASK_STYLE_NAME;
218 if (wls_flag == True) {
219 key.size.w = wls_val;
220 mask |= FAL_FONT_MASK_SIZE_W;
222 if (hls_flag == True) {
223 key.size.h = hls_val;
224 mask |= FAL_FONT_MASK_SIZE_H;
227 if (FalGetFontList(&key, mask, &fontlist) == FAL_ERROR) {
230 if(fontlist->num == 0) {
231 FalFreeFontList(fontlist);
234 xlf = (XmString *)XtMalloc(sizeof(XmString) * fontlist->num);
235 for (i=0, f=fontlist->list; i < fontlist->num; i++, f++) {
236 xlf[xlf_count++] = XmStringCreateLocalized(f->xlfdname);
238 FalFreeFontList(fontlist);
247 XtVaGetValues(w, XmNlabelString, &label, NULL);
248 moji = _XmStringUngenerate(label, NULL, XmMULTIBYTE_TEXT, XmMULTIBYTE_TEXT);
249 if(strncmp(moji, "*", 1) == 0) {
251 } else if(strcmp(moji, CS0) == 0) {
252 udc_val = FAL_FONT_CS0;
254 } else if(strcmp(moji, CS1) == 0) {
255 udc_val = FAL_FONT_CS1;
257 } else if(strcmp(moji, CS2) == 0) {
258 udc_val = FAL_FONT_CS2;
260 } else if(strcmp(moji, CS3) == 0) {
261 udc_val = FAL_FONT_CS3;
268 XtVaSetValues(scrolllist, XmNitems, xlf, XmNitemCount, xlf_count, NULL);
281 XtVaGetValues(w, XmNlabelString, &label, NULL);
282 moji = _XmStringUngenerate(label, NULL, XmMULTIBYTE_TEXT, XmMULTIBYTE_TEXT);
283 if(strncmp(moji, "*", 1) == 0) {
287 sty_val = XtMalloc(sizeof(char) * (strlen(moji) + 1));
288 strcpy(sty_val, moji);
293 XtVaSetValues(scrolllist, XmNitems, xlf, XmNitemCount, xlf_count, NULL);
302 XtVaGetValues(w, XmNlabelString, &label, NULL);
303 moji = _XmStringUngenerate(label, NULL, XmMULTIBYTE_TEXT, XmMULTIBYTE_TEXT);
304 if(strncmp(moji, "*", 1) == 0) {
308 wls_val = atoi(moji);
314 XtVaSetValues(scrolllist, XmNitems, xlf, XmNitemCount, xlf_count, NULL);
323 XtVaGetValues(w, XmNlabelString, &label, NULL);
324 moji = _XmStringUngenerate(label, NULL, XmMULTIBYTE_TEXT, XmMULTIBYTE_TEXT);
325 if(strncmp(moji, "*", 1) == 0) {
329 hls_val = atoi(moji);
335 XtVaSetValues(scrolllist, XmNitems, xlf, XmNitemCount, xlf_count, NULL);
342 int mask = FAL_FONT_MASK_DEFINED | FAL_FONT_MASK_UNDEFINED;
344 FalFontDataList *fontlist;
348 if (sty_flag == True) {
349 key.style.name = sty_val;
350 mask |= FAL_FONT_MASK_STYLE_NAME;
352 if (wls_flag == True) {
353 key.size.w = wls_val;
354 mask |= FAL_FONT_MASK_SIZE_W;
356 if (hls_flag == True) {
357 key.size.h = hls_val;
358 mask |= FAL_FONT_MASK_SIZE_H;
360 if (FalGetFontList(&key, mask, &fontlist) == FAL_ERROR) {
361 for (j=0; j<udc_count; j++)
362 XtSetSensitive(button1[j], False);
365 if(fontlist->num == 0) {
366 FalFreeFontList(fontlist);
367 for (j=0; j<udc_count; j++)
368 XtSetSensitive(button1[j], False);
372 for (j=0; j<udc_count; j++) {
373 for (i=0, f=fontlist->list, found=False; i < fontlist->num; i++, f++) {
374 if(udc[j] == f->cd_set) {
380 XtSetSensitive(button1[j], False);
382 XtSetSensitive(button1[j], True);
384 FalFreeFontList(fontlist);
391 int mask = FAL_FONT_MASK_DEFINED | FAL_FONT_MASK_UNDEFINED;
393 FalFontDataList *fontlist;
397 if (udc_flag == True) {
398 key.cd_set = udc_val;
399 mask |= FAL_FONT_MASK_CODE_SET;
401 if (wls_flag == True) {
402 key.size.w = wls_val;
403 mask |= FAL_FONT_MASK_SIZE_W;
405 if (hls_flag == True) {
406 key.size.h = hls_val;
407 mask |= FAL_FONT_MASK_SIZE_H;
409 if (FalGetFontList(&key, mask, &fontlist) == FAL_ERROR) {
410 for (j=0; j<sty_count; j++)
411 XtSetSensitive(button2[j], False);
414 if(fontlist->num == 0) {
415 for (j=0; j<sty_count; j++)
416 XtSetSensitive(button2[j], False);
417 FalFreeFontList(fontlist);
421 for (j=0; j<sty_count; j++) {
422 for (i=0, f=fontlist->list, found=False; i < fontlist->num; i++, f++) {
423 if(strcmp(sty[j], f->style.name) == 0) {
429 XtSetSensitive(button2[j], False);
431 XtSetSensitive(button2[j], True);
433 FalFreeFontList(fontlist);
440 int mask = FAL_FONT_MASK_DEFINED | FAL_FONT_MASK_UNDEFINED;
442 FalFontDataList *fontlist;
446 if (udc_flag == True) {
447 key.cd_set = udc_val;
448 mask |= FAL_FONT_MASK_CODE_SET;
450 if (sty_flag == True) {
451 key.style.name = sty_val;
452 mask |= FAL_FONT_MASK_STYLE_NAME;
454 if (hls_flag == True) {
455 key.size.h = hls_val;
456 mask |= FAL_FONT_MASK_SIZE_H;
458 if (FalGetFontList(&key, mask, &fontlist) == FAL_ERROR) {
459 for (j=0; j<wls_count; j++)
460 XtSetSensitive(button3[j], False);
463 if(fontlist->num == 0) {
464 for (j=0; j<wls_count; j++)
465 XtSetSensitive(button3[j], False);
466 FalFreeFontList(fontlist);
470 for (j=0; j<wls_count; j++) {
471 for (i=0, f=fontlist->list, found=False; i < fontlist->num; i++, f++) {
472 if(wls[j] == f->size.w) {
478 XtSetSensitive(button3[j], False);
480 XtSetSensitive(button3[j], True);
482 FalFreeFontList(fontlist);
489 int mask = FAL_FONT_MASK_DEFINED | FAL_FONT_MASK_UNDEFINED;
491 FalFontDataList *fontlist;
495 if (udc_flag == True) {
496 key.cd_set = udc_val;
497 mask |= FAL_FONT_MASK_CODE_SET;
499 if (sty_flag == True) {
500 key.style.name = sty_val;
501 mask |= FAL_FONT_MASK_STYLE_NAME;
503 if (wls_flag == True) {
504 key.size.w = wls_val;
505 mask |= FAL_FONT_MASK_SIZE_W;
507 if (FalGetFontList(&key, mask, &fontlist) == FAL_ERROR) {
508 for (j=0; j<hls_count; j++)
509 XtSetSensitive(button4[j], False);
512 if(fontlist->num == 0) {
513 for (j=0; j<hls_count; j++)
514 XtSetSensitive(button4[j], False);
515 FalFreeFontList(fontlist);
519 for (j=0; j<hls_count; j++) {
520 for (i=0, f=fontlist->list, found=False; i < fontlist->num; i++, f++) {
521 if(hls[j] == f->size.h) {
527 XtSetSensitive(button4[j], False);
529 XtSetSensitive(button4[j], True);
531 FalFreeFontList(fontlist);
538 FalFontDataList *fontlist;
545 extern void data_sort();
546 extern void Error_message();
548 xlf_count = udc_count = sty_count = wls_count = hls_count = 0;
549 if (FalGetFontList(NULL, FAL_FONT_MASK_DEFINED |
550 FAL_FONT_MASK_UNDEFINED, &fontlist) == FAL_ERROR) {
551 strcpy(err, FAL_ERROR_STR);
552 Error_message((Widget)NULL, err);
555 if(fontlist->num == 0) {
556 FalFreeFontList(fontlist);
557 strcpy(err, resource.mn_no_font);
558 Error_message((Widget)NULL, err);
561 xlf = (XmString *)XtMalloc(sizeof(XmString) * fontlist->num);
562 udc = (int *)XtMalloc(sizeof(int) * fontlist->num);
563 sty = (char **)XtMalloc(sizeof(char *) * fontlist->num);
564 wls = (int *)XtMalloc(sizeof(int) * fontlist->num);
565 hls = (int *)XtMalloc(sizeof(int) * fontlist->num);
566 for (i=0, f=fontlist->list; i < fontlist->num; i++, f++) {
567 xlf[xlf_count++] = XmStringCreateLocalized(f->xlfdname);
568 for (j=0,found=False; j<udc_count; j++) {
569 if(udc[j] == f->cd_set) {
574 if (found == False) {
575 udc[udc_count++] = f->cd_set;
577 for (j=0,found=False; j<sty_count; j++) {
578 if(strcmp(sty[j], f->style.name) == 0) {
583 if (found == False) {
584 sty[sty_count] = XtMalloc(sizeof(char) * (strlen(f->style.name) + 1));
585 strcpy(sty[sty_count++], f->style.name);
587 if (f->size.w != -1) {
588 for (j=0,found=False; j<wls_count; j++) {
589 if(wls[j] == f->size.w) {
594 if (found == False) {
595 wls[wls_count++] = f->size.w;
598 for (j=0,found=False; j<hls_count; j++) {
599 if(hls[j] == f->size.h) {
604 if (found == False) {
605 hls[hls_count++] = f->size.h;
608 FalFreeFontList(fontlist);
610 data_sort(udc, udc_count);
611 data_sort(wls, wls_count);
612 data_sort(hls, hls_count);
614 button1 = (Widget *) XtMalloc(sizeof(Widget) * udc_count);
615 button2 = (Widget *) XtMalloc(sizeof(Widget) * sty_count);
616 button3 = (Widget *) XtMalloc(sizeof(Widget) * wls_count);
617 button4 = (Widget *) XtMalloc(sizeof(Widget) * hls_count);
619 button = XmCreatePushButton(pull1, "*", NULL, 0);
620 XtManageChild(button);
621 XtAddCallback(button, XmNactivateCallback,
622 (XtCallbackProc)udc_call, NULL);
623 for (i=0; i < udc_count; i++) {
624 if(udc[i] == FAL_FONT_CS0)
626 else if(udc[i] == FAL_FONT_CS1)
628 else if(udc[i] == FAL_FONT_CS2)
630 else if(udc[i] == FAL_FONT_CS3)
633 sprintf(tmp, "Codeset %x?", udc[i]);
634 button1[i] = XmCreatePushButton(pull1, tmp, NULL, 0);
635 XtManageChild(button1[i]);
636 XtAddCallback(button1[i], XmNactivateCallback,
637 (XtCallbackProc)udc_call, NULL);
640 button = XmCreatePushButton(pull2, "*", NULL, 0);
641 XtManageChild(button);
642 XtAddCallback(button, XmNactivateCallback,
643 (XtCallbackProc)sty_call, NULL);
644 for (i=0; i < sty_count; i++) {
645 button2[i] = XmCreatePushButton(pull2, sty[i], NULL, 0);
646 XtManageChild(button2[i]);
647 XtAddCallback(button2[i], XmNactivateCallback,
648 (XtCallbackProc)sty_call, NULL);
651 button = XmCreatePushButton(pull3, "*", NULL, 0);
652 XtManageChild(button);
653 XtAddCallback(button, XmNactivateCallback,
654 (XtCallbackProc)wls_call, NULL);
655 for (i=0; i < wls_count; i++) {
656 sprintf(tmp, "%d", wls[i]);
657 button3[i] = XmCreatePushButton(pull3, tmp, NULL, 0);
658 XtManageChild(button3[i]);
659 XtAddCallback(button3[i], XmNactivateCallback,
660 (XtCallbackProc)wls_call, NULL);
663 button = XmCreatePushButton(pull4, "*", NULL, 0);
664 XtManageChild(button);
665 XtAddCallback(button, XmNactivateCallback,
666 (XtCallbackProc)hls_call, NULL);
667 for (i=0; i < hls_count; i++) {
668 sprintf(tmp, "%d", hls[i]);
669 button4[i] = XmCreatePushButton(pull4, tmp, NULL, 0);
670 XtManageChild(button4[i]);
671 XtAddCallback(button4[i], XmNactivateCallback,
672 (XtCallbackProc)hls_call, NULL);
682 if (XtIsSensitive(wid)) {
683 XtSetSensitive(wid, False);
685 XtSetSensitive(wid, True);
701 extern void CodeWindow();
702 XtVaGetValues(scrolllist, XmNselectedItems, &st, NULL);
706 str = _XmStringUngenerate(st[0], NULL, XmMULTIBYTE_TEXT, XmMULTIBYTE_TEXT);
707 CodeWindow(focus_widget, str, True);
713 extern void CodeWindow();
714 CodeWindow(codeText[2], fullFontData.xlfdname, False);
718 CreateCopyXLFD( top )
724 XmString xms, xms1, xms2 ;
725 Widget frame, row, label1, row1, row2, row3, row4, row5;
726 Widget sep, cas1, cas2, cas3, cas4;
729 extern Pixmap arrow_pix;
735 udc_flag = sty_flag = wls_flag = hls_flag = False;
741 XtSetArg( args[n], XmNautoUnmanage, False ) ; n++ ;
742 xms = XmStringCreateLocalized( resource.l_copy ) ;
743 XtSetArg( args[n], XmNokLabelString, xms ) ; n++ ;
744 xms1 = XmStringCreateLocalized( resource.l_overlay ) ;
745 XtSetArg( args[n], XmNcancelLabelString, xms1 ) ; n++ ;
746 xms2 = XmStringCreateLocalized( resource.quit_label) ;
747 XtSetArg( args[n], XmNhelpLabelString, xms2 ) ; n++ ;
748 XtSetArg( args[n], XmNnoResize, True ) ; n++ ;
749 XtSetArg( args[n], XmNminimizeButtons, True ) ; n++ ;
750 XtSetArg( args[n], XmNtitle, resource.l_copy_title) ; n++ ;
751 cpyDialog = XmCreateTemplateDialog( top, "copy_dialog", args, n );
753 XmStringFree( xms ) ;
754 XmStringFree( xms1 ) ;
755 XmStringFree( xms2 ) ;
758 pull1 = XmCreatePulldownMenu(top, "pull", args, n);
759 pull2 = XmCreatePulldownMenu(top, "pull", args, n);
760 pull3 = XmCreatePulldownMenu(top, "pull", args, n);
761 pull4 = XmCreatePulldownMenu(top, "pull", args, n);
764 row = XmCreateRowColumn( cpyDialog, "BaseForm", args, n );
765 XtManageChild( row );
768 frame = XmCreateFrame( row, "frame", args, n);
769 XtManageChild( frame );
772 row1 = XmCreateRowColumn( frame, "row", args, n );
773 XtManageChild( row1 );
776 str = XmStringCreateLocalized(resource.l_selectitem) ;
777 XtSetArg(args[n], XmNlabelString, str); n++;
778 label1 = XmCreateLabel( row1, "SelectItems", args, n);
779 XtManageChild( label1 );
783 row2 = XmCreateRowColumn( row1, "row", args, n );
784 XtManageChild( row2 );
787 str = XmStringCreateLocalized(resource.l_codeset) ;
788 XtSetArg(args[n], XmNlabelString, str); n++;
789 XtSetArg(args[n], XmNsubMenuId, pull1); n++;
790 cas1 = XmCreateOptionMenu( row2, "CodeSet", args, n );
791 XtManageChild( cas1 );
792 XtAddCallback(XmOptionButtonGadget(cas1), XmNcascadingCallback,
793 (XtCallbackProc)button_set1, NULL);
797 str = XmStringCreateLocalized(resource.l_style) ;
798 XtSetArg(args[n], XmNlabelString, str); n++;
799 XtSetArg(args[n], XmNsubMenuId, pull2); n++;
800 cas2 = XmCreateOptionMenu( row2, "Style", args, n );
801 XtAddCallback(XmOptionButtonGadget(cas2), XmNcascadingCallback,
802 (XtCallbackProc)button_set2, NULL);
803 XtManageChild( cas2 );
807 str = XmStringCreateLocalized(resource.l_width) ;
808 XtSetArg(args[n], XmNlabelString, str); n++;
809 XtSetArg(args[n], XmNsubMenuId, pull3); n++;
810 cas3 = XmCreateOptionMenu( row2, "Width", args, n );
811 XtManageChild( cas3 );
812 XtAddCallback(XmOptionButtonGadget(cas3), XmNcascadingCallback,
813 (XtCallbackProc)button_set3, NULL);
817 str = XmStringCreateLocalized(resource.l_height) ;
818 XtSetArg(args[n], XmNlabelString, str); n++;
819 XtSetArg(args[n], XmNsubMenuId, pull4); n++;
820 cas4 = XmCreateOptionMenu( row2, "Height", args, n );
821 XtManageChild( cas4 );
822 XtAddCallback(XmOptionButtonGadget(cas4), XmNcascadingCallback,
823 (XtCallbackProc)button_set4, NULL);
829 XtSetArg(args[n], XmNvisibleItemCount, 10) ; n++ ;
830 XtSetArg(args[n], XmNlistSizePolicy, XmCONSTANT) ; n++ ;
831 XtSetArg(args[n], XmNscrollBarDisplayPolicy, XmSTATIC) ; n++ ;
832 XtSetArg(args[n], XmNselectionPolicy, XmSINGLE_SELECT) ; n++ ;
833 XtSetArg(args[n], XmNitems, xlf) ; n++ ;
834 XtSetArg(args[n], XmNitemCount, xlf_count) ; n++ ;
835 scrolllist = XmCreateScrolledList(row, "scrolllist", args, n);
836 XtManageChild(scrolllist);
839 sep = XmCreateSeparator(row, "sep", args, n);
843 row3 = XmCreateRowColumn( row, "row", args, n );
844 XtManageChild( row3 );
847 disp = XtDisplay(row);
848 root = DefaultRootWindow(disp);
850 ReadXpm(disp, root, arrow_pm, &arrow_pix, &mask, &attr);
854 XtSetArg(args[n], XmNorientation, XmHORIZONTAL) ; n++ ;
855 row4 = XmCreateRowColumn( row3, "row", args, n );
856 XtManageChild( row4 );
858 xms = XmStringCreateLocalized(resource.l_copy_src_code);
860 XtSetArg(args[n], XmNlabelString, xms); n++ ;
861 codeLabel[0] = XmCreateLabel(row4 , "copylabel", args, n);
862 XtManageChild(codeLabel[0]);
863 XmStringFree( xms ) ;
866 XtSetArg(args[n], XmNcolumns, 4); n++;
867 XtSetArg(args[n], XmNmaxLength, 4); n++;
868 XtSetArg(args[n], XmNeditable, True); n++;
869 XtSetArg(args[n], XmNcursorPositionVisible, True); n++;
870 focus_widget = codeText[0] = XmCreateText(row4 , "copytext",
872 XtManageChild(codeText[0]);
874 XtAddCallback(codeText[0], XmNfocusCallback, (XtCallbackProc)focus, NULL);
877 XtSetArg(args[n], XmNlabelPixmap, arrow_pix); n++;
878 XtSetArg(args[n], XmNlabelType, XmPIXMAP); n++;
879 XtSetArg(args[n], XmNindicatorOn, False); n++;
880 XtSetArg(args[n], XmNshadowThickness, 2); n++;
881 XtSetArg(args[n], XmNfillOnSelect, False); n++;
882 XtSetArg(args[n], XmNhighlightThickness, 0); n++;
883 arrow = XmCreateToggleButton(row4, "arrow", args, n);
884 XtManageChild(arrow);
887 XtSetArg(args[n], XmNcolumns, 4); n++;
888 XtSetArg(args[n], XmNmaxLength, 4); n++;
889 XtSetArg(args[n], XmNeditable, True); n++;
890 XtSetArg(args[n], XmNcursorPositionVisible, True); n++;
891 codeText[1] = XmCreateText(row4 , "copytext", args, n);
892 XtManageChild(codeText[1]);
893 XtSetSensitive(codeText[1], False);
895 XtAddCallback(codeText[1], XmNfocusCallback, (XtCallbackProc)focus, NULL);
897 XtAddCallback(arrow, XmNvalueChangedCallback,
898 (XtCallbackProc)arrow_change, (XtPointer)codeText[1]);
901 xms = XmStringCreateLocalized(resource.code) ;
902 XtSetArg(args[n], XmNlabelString, xms); n++;
903 XtSetArg(args[n], XmNhighlightThickness, 0); n++;
904 code = XmCreatePushButton(row4, "Code", args, n);
908 XtAddCallback(code, XmNactivateCallback,
909 (XtCallbackProc)code_input, (XtPointer)NULL);
912 XtSetArg(args[n], XmNorientation, XmHORIZONTAL) ; n++ ;
913 row5 = XmCreateRowColumn( row3, "row", args, n );
914 XtManageChild( row5 );
916 xms = XmStringCreateLocalized(resource.l_copy_dest_code);
919 XtSetArg(args[n], XmNlabelString, xms); n++ ;
920 codeLabel[1] = XmCreateLabel(row5 , "copylabel", args, n);
921 XtManageChild(codeLabel[1]);
922 XmStringFree( xms ) ;
925 XtSetArg(args[n], XmNcolumns, 4); n++;
926 XtSetArg(args[n], XmNmaxLength, 4); n++;
927 XtSetArg(args[n], XmNeditable, True); n++;
928 XtSetArg(args[n], XmNcursorPositionVisible, True); n++;
929 codeText[2] = XmCreateText(row5 , "copytext", args, n);
930 XtManageChild(codeText[2]);
933 xms = XmStringCreateLocalized(resource.code) ;
934 XtSetArg(args[n], XmNlabelString, xms); n++;
935 XtSetArg(args[n], XmNhighlightThickness, 0); n++;
936 code = XmCreatePushButton(row5, "Code", args, n);
940 XtAddCallback(code, XmNactivateCallback,
941 (XtCallbackProc)code_input2, (XtPointer)NULL);
943 return( cpyDialog ) ;