Exemplo n.º 1
0
// Create `Run' dialog
void gdbRunCB(Widget w, XtPointer, XtPointer)
{
    if (run_dialog == 0)
    {
	Arg args[10];
	int arg = 0;

	run_dialog = 
	    verify(XmCreateSelectionDialog(find_shell(w), 
					   XMST("run_dialog"), 
					   args, arg));
	XtUnmanageChild(XmSelectionBoxGetChild(run_dialog, 
					       XmDIALOG_APPLY_BUTTON));

	Delay::register_shell(run_dialog);
	XtAddCallback(run_dialog, XmNokCallback,     gdbRunDCB, 0);
	XtAddCallback(run_dialog, XmNapplyCallback,  gdbRunDCB, 0);
	XtAddCallback(run_dialog, XmNhelpCallback,   ImmediateHelpCB, 0);

	run_arguments_w = XmSelectionBoxGetChild(run_dialog, XmDIALOG_LIST);
	XtAddCallback(run_arguments_w, XmNsingleSelectionCallback,
		      SelectRunArgsCB, 0);
	XtAddCallback(run_arguments_w, XmNmultipleSelectionCallback,
		      SelectRunArgsCB, 0);
	XtAddCallback(run_arguments_w, XmNextendedSelectionCallback,
		      SelectRunArgsCB, 0);
	XtAddCallback(run_arguments_w, XmNbrowseSelectionCallback,
		      SelectRunArgsCB, 0);
    }

    update_run_arguments();
    manage_and_raise(run_dialog);
}
Exemplo n.º 2
0
void CreateMySelectionDialog(XmStringTable item_names, int item_num,  
  XtCallbackProc OkCallback)
{
 Widget		dialog;
 int		i;

 dialog = XmCreateSelectionDialog(toplevel, "selection", NULL, 0);
 XtVaSetValues(dialog, XmNmustMatch, True, NULL);  /* !!! */
/* when unmanaged - AnyCB also was not called 
 XtUnmanageChild(XmSelectionBoxGetChild(dialog, XmDIALOG_APPLY_BUTTON));
 XtUnmanageChild(XmSelectionBoxGetChild(dialog, XmDIALOG_SELECTION_LABEL));
 XtUnmanageChild(XmSelectionBoxGetChild(dialog, XmDIALOG_TEXT));
*/

 XtVaSetValues(dialog,
		XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL,
		XmNlistItemCount, item_num,
		XmNlistItems, item_names,
		NULL);

 XtAddCallback(dialog, XmNokCallback, OkCallback, NULL); 
/* XtAddCallback(dialog, XmNcancelCallback, XtDestroyWidget, (XtPointer)0);*/
 for (i = 0 ; i < item_num ; i++) XmStringFree(item_names[i]);
 XtFree((char*)item_names);

 XtManageChild(dialog);
 XtPopup(XtParent(dialog), XtGrabNone);
}
Exemplo n.º 3
0
void gdbOpenProcessCB(Widget w, XtPointer, XtPointer)
{
    static Widget dialog = 0;
    static Widget processes = 0;

    if (dialog == 0)
    {
	Arg args[10];
	int arg = 0;
    
	XtSetArg(args[arg], XmNautoUnmanage, False); arg++;
	dialog = verify(XmCreateSelectionDialog(find_shell(w), 
						XMST("processes"), 
						args, arg));

	Delay::register_shell(dialog);

	XtUnmanageChild(XmSelectionBoxGetChild(dialog, 
					       XmDIALOG_SELECTION_LABEL));
	XtUnmanageChild(XmSelectionBoxGetChild(dialog, 
					       XmDIALOG_TEXT));

	processes = XmSelectionBoxGetChild(dialog, XmDIALOG_LIST);

	XtAddCallback(processes, XmNsingleSelectionCallback,
		      SelectProcessCB, XtPointer(processes));
	XtAddCallback(processes, XmNmultipleSelectionCallback,
		      SelectProcessCB, XtPointer(processes));
	XtAddCallback(processes, XmNextendedSelectionCallback,
		      SelectProcessCB, XtPointer(processes));
	XtAddCallback(processes, XmNbrowseSelectionCallback,
		      SelectProcessCB, XtPointer(processes));

	XtAddCallback(dialog, XmNokCallback, 
		      openProcessDone, XtPointer(processes));
	XtAddCallback(dialog, XmNapplyCallback, 
		      gdbUpdateProcessesCB, XtPointer(processes));
	XtAddCallback(dialog, XmNcancelCallback, 
		      UnmanageThisCB, XtPointer(dialog));
	XtAddCallback(dialog, XmNhelpCallback, ImmediateHelpCB, 0);
    }

    update_processes(processes, false);
    manage_and_raise(dialog);
    warn_if_no_program(dialog);
}
Exemplo n.º 4
0
int
main (int argc, char *argv[])
{
  Arg al[1];
  int ac;
  XtAppContext context;
  Widget toplevel, dialog, form, work;

  toplevel = XtAppInitialize (&context, "", NULL, 0,
			      &argc, argv, NULL, NULL, 0);


  dialog = XmCreateSelectionDialog (toplevel, "filesb", NULL, 0);

  work=XmSelectionBoxGetChild(dialog, XmDIALOG_WORK_AREA);
#if 0
  /* try to add one "manually": */
  if (!work)
    form=XtVaCreateManagedWidget("form", xmFormWidgetClass, dialog,
                                 NULL);

  work=XmSelectionBoxGetChild(dialog, XmDIALOG_WORK_AREA);
#endif
  
  if (!work) {
     printf("work==NULL\n");
     exit(0);
  } else  if (work!=form) {
     printf("form != work\n");
     exit(1);
  } else {
     /* Motif 1.2 does so */
     printf("form == work\n");  
#if 0
     XtManageChild(dialog);
     XtRealizeWidget (toplevel);
     LessTifTestMainLoop (toplevel);
#endif
     exit(2);
  }
}
Exemplo n.º 5
0
// Create `ChangeDirectory' dialog
void gdbChangeDirectoryCB(Widget w, XtPointer, XtPointer)
{
    if (cd_dialog == 0)
    {
	Arg args[10];
	int arg = 0;

	cd_dialog = 
	    verify(XmCreateSelectionDialog(find_shell(w), 
					   XMST("cd_dialog"), 
					   args, arg));
	XtUnmanageChild(XmSelectionBoxGetChild(cd_dialog, 
					       XmDIALOG_APPLY_BUTTON));

	Delay::register_shell(cd_dialog);
	XtAddCallback(cd_dialog, XmNokCallback,     gdbChangeDirectoryDCB, 0);
	XtAddCallback(cd_dialog, XmNapplyCallback,  gdbChangeDirectoryDCB, 0);
	XtAddCallback(cd_dialog, XmNhelpCallback,   ImmediateHelpCB, 0);

	cd_arguments_w = XmSelectionBoxGetChild(cd_dialog, XmDIALOG_LIST);
	XtAddCallback(cd_arguments_w, XmNsingleSelectionCallback,
		      SelectChangeDirectoryArgsCB, 0);
	XtAddCallback(cd_arguments_w, XmNmultipleSelectionCallback,
		      SelectChangeDirectoryArgsCB, 0);
	XtAddCallback(cd_arguments_w, XmNextendedSelectionCallback,
		      SelectChangeDirectoryArgsCB, 0);
	XtAddCallback(cd_arguments_w, XmNbrowseSelectionCallback,
		      SelectChangeDirectoryArgsCB, 0);

	add_argument("..", cd_arguments, last_cd_argument, 
		     cd_arguments_updated);
    }

    update_cd_arguments();
    manage_and_raise(cd_dialog);
}
Exemplo n.º 6
0
// Create `Make' dialog
void gdbMakeCB(Widget w, XtPointer, XtPointer)
{
    if (!gdb->has_make_command())
	return;

    if (make_dialog == 0)
    {
	Arg args[10];
	int arg = 0;

	make_dialog = 
	    verify(XmCreateSelectionDialog(find_shell(w), 
					   XMST("make_dialog"), 
					   args, arg));
	XtUnmanageChild(XmSelectionBoxGetChild(make_dialog, 
					       XmDIALOG_APPLY_BUTTON));

	Delay::register_shell(make_dialog);
	XtAddCallback(make_dialog, XmNokCallback,     gdbMakeDCB, 0);
	XtAddCallback(make_dialog, XmNapplyCallback,  gdbMakeDCB, 0);
	XtAddCallback(make_dialog, XmNhelpCallback,   ImmediateHelpCB, 0);

	make_arguments_w = XmSelectionBoxGetChild(make_dialog, XmDIALOG_LIST);
	XtAddCallback(make_arguments_w, XmNsingleSelectionCallback,
		      SelectMakeArgsCB, 0);
	XtAddCallback(make_arguments_w, XmNmultipleSelectionCallback,
		      SelectMakeArgsCB, 0);
	XtAddCallback(make_arguments_w, XmNextendedSelectionCallback,
		      SelectMakeArgsCB, 0);
	XtAddCallback(make_arguments_w, XmNbrowseSelectionCallback,
		      SelectMakeArgsCB, 0);
    }

    update_make_arguments();
    manage_and_raise(make_dialog);
}
Exemplo n.º 7
0
void gdbLookupSourceCB(Widget w, XtPointer client_data, XtPointer call_data)
{
    if (gdb->type() != GDB)
    {
	gdbOpenSourceCB(w, client_data, call_data);
	return;
    }

    static Widget dialog  = 0;

    if (dialog == 0)
    {
	Arg args[10];
	int arg = 0;
    
	XtSetArg(args[arg], XmNautoUnmanage, False); arg++;
#if XmVersion >= 1002
	XtSetArg(args[arg], XmNchildPlacement, XmPLACE_TOP); arg++;
#endif
	dialog = verify(XmCreateSelectionDialog(find_shell(w), 
						XMST("sources"), args, arg));

	Delay::register_shell(dialog);

	XtUnmanageChild(XmSelectionBoxGetChild(dialog, 
					       XmDIALOG_SELECTION_LABEL));
	XtUnmanageChild(XmSelectionBoxGetChild(dialog, 
					       XmDIALOG_TEXT));

	arg = 0;
	XtSetArg(args[arg], XmNmarginWidth,     0);     arg++;
	XtSetArg(args[arg], XmNmarginHeight,    0);     arg++;
	XtSetArg(args[arg], XmNborderWidth,     0);     arg++;
	XtSetArg(args[arg], XmNadjustMargin,    False); arg++;
	XtSetArg(args[arg], XmNshadowThickness, 0);     arg++;
	XtSetArg(args[arg], XmNspacing,         0);     arg++;
	Widget bigbox = XmCreateRowColumn(dialog, XMST("bigbox"), args, arg);
	XtManageChild(bigbox);

	arg = 0;
	XtSetArg(args[arg], XmNmarginWidth,     0);     arg++;
	XtSetArg(args[arg], XmNmarginHeight,    0);     arg++;
	XtSetArg(args[arg], XmNborderWidth,     0);     arg++;
	XtSetArg(args[arg], XmNadjustMargin,    False); arg++;
	XtSetArg(args[arg], XmNshadowThickness, 0);     arg++;
	XtSetArg(args[arg], XmNspacing,         0);     arg++;
	Widget box = XmCreateRowColumn(bigbox, XMST("box"), args, arg);
	XtManageChild(box);

	arg = 0;
	Widget label = XmCreateLabel(box, XMST("label"), args, arg);
	XtManageChild(label);

	arg = 0;
	source_filter = XmCreateTextField(box, XMST("filter"), args, arg);
	XtManageChild(source_filter);

	arg = 0;
	Widget sharedlibrary = 
	    XmCreatePushButton(bigbox, XMST("sharedlibrary"), args, arg);
	XtManageChild(sharedlibrary);

#if XmVersion >= 1002
	arg = 0;
	Widget lookup = XmCreatePushButton(dialog, 
					   XMST("lookup"), args, arg);
	XtManageChild(lookup);
#endif

	source_list = XmSelectionBoxGetChild(dialog, XmDIALOG_LIST);

	XtAddCallback(source_list, XmNsingleSelectionCallback,
		      SelectSourceCB, XtPointer(source_list));
	XtAddCallback(source_list, XmNmultipleSelectionCallback,
		      SelectSourceCB, XtPointer(source_list));
	XtAddCallback(source_list, XmNextendedSelectionCallback,
		      SelectSourceCB, XtPointer(source_list));
	XtAddCallback(source_list, XmNbrowseSelectionCallback,
		      SelectSourceCB, XtPointer(source_list));

	XtAddCallback(dialog, XmNokCallback, 
		      lookupSourceDone, XtPointer(source_list));
	XtAddCallback(dialog, XmNapplyCallback, FilterSourcesCB, 0);
	XtAddCallback(dialog, XmNcancelCallback, 
		      UnmanageThisCB, XtPointer(dialog));
	XtAddCallback(dialog, XmNunmapCallback, ClearStatusCB, 0);
	XtAddCallback(dialog, XmNhelpCallback, ImmediateHelpCB, 0);

	XtAddCallback(source_filter, XmNactivateCallback, 
		      FilterSourcesCB, 0);
	XtAddCallback(sharedlibrary, XmNactivateCallback, 
		      LoadSharedLibrariesCB, 0);

#if XmVersion >= 1002
	XtAddCallback(lookup, XmNactivateCallback, 
		      lookupSourceDone, XtPointer(source_list));
#endif
    }

    update_sources(source_list, source_filter);

    open_source_msg();
    manage_and_raise(dialog);
    warn_if_no_program(dialog);
}
Exemplo n.º 8
0
Widget XmCreateSelectionDialog_TNK(Widget parent, String name, ArgList arglist,Cardinal argcount) { return XmCreateSelectionDialog(parent, name, arglist, argcount);}
Exemplo n.º 9
0
// Answer GDB question
static void select_from_gdb(const string& question, string& reply)
{
    int count       = question.freq('\n') + 1;
    string *choices = new string[count];
    bool *selected  = new bool[count];

    split(question, choices, count, '\n');

    // Highlight choice #1 by default
    for (int i = 0; i < count; i++)
    {
	if (!has_nr(choices[i]))
	{
	    // Choice has no number (prompt) - remove it
	    for (int j = i; j < count - 1; j++)
		choices[j] = choices[j + 1];
	    count--;
	    i--;
	}
	else
	{
	    selected[i] = (get_positive_nr(choices[i]) == 1);
	}
    }

    if (count < 2)
    {
	// Nothing to choose from
	if (count == 1)
	{
	    // Take the first choice.
	    reply = itostring(atoi(choices[0].chars())) + "\n";
	}
	
	delete[] choices;
	delete[] selected;
	return;
    }

    // Popup selection dialog
    static string selection_reply;

    if (gdb_selection_dialog == 0)
    {
	Arg args[10];
	Cardinal arg = 0;
	XtSetArg(args[arg], XmNautoUnmanage, False); arg++;

	gdb_selection_dialog = 
	    verify(XmCreateSelectionDialog(find_shell(gdb_w),
					   XMST("gdb_selection_dialog"),
					   args, arg));
	Delay::register_shell(gdb_selection_dialog);

	XtUnmanageChild(XmSelectionBoxGetChild(gdb_selection_dialog,
					       XmDIALOG_TEXT));
	XtUnmanageChild(XmSelectionBoxGetChild(gdb_selection_dialog, 
					       XmDIALOG_SELECTION_LABEL));
	XtUnmanageChild(XmSelectionBoxGetChild(gdb_selection_dialog, 
					       XmDIALOG_APPLY_BUTTON));

	gdb_selection_list_w = XmSelectionBoxGetChild(gdb_selection_dialog, 
						      XmDIALOG_LIST);
	XtVaSetValues(gdb_selection_list_w,
		      XmNselectionPolicy, XmSINGLE_SELECT,
		      XtPointer(0));
	XtAddCallback(gdb_selection_dialog,
		      XmNokCallback, SelectCB, &selection_reply);
	XtAddCallback(gdb_selection_dialog,
		      XmNcancelCallback, CancelCB, &selection_reply);
	XtAddCallback(gdb_selection_dialog,
		      XmNhelpCallback, ImmediateHelpCB, 0);
    }

    setLabelList(gdb_selection_list_w, choices, selected, count, false, false);

    delete[] choices;
    delete[] selected;

    manage_and_raise(gdb_selection_dialog);

    selection_reply = "";
    while (selection_reply.empty() 
	   && gdb->running() && !gdb->isReadyWithPrompt())
	XtAppProcessEvent(XtWidgetToApplicationContext(gdb_w), XtIMAll);

    // Found a reply - return
    reply = selection_reply;
}
Exemplo n.º 10
0
void packet_selection_menu(Widget w, XtPointer client_data, XtPointer call_data) 
{
   Widget dialog, form, d;
   Widget again_box;
   Widget area_comp_but, table_comp_but;
   int i,j;
   /* CVG 9.0 - change name for clarity */
   int list_size;

   unsigned char is_set;

   XmString xmstr;
   XmString *xmstr_packetselect;
   static char *helpfile = HELP_FILE_PACKET_SELECT;

  Prod_header *hdr;
  Graphic_product *gp;

/* DEBUG */
/* fprintf(stderr,"DEBUG - ENTERING packet_selection_menu()\n"); */


    hdr = (Prod_header *)(sd->icd_product);
    gp  = (Graphic_product *)(sd->icd_product + 96);

    
  /* set up the main active screen */    
    if(selected_screen == SCREEN_1) {
        sd = sd1;       
    }
    
    if(selected_screen == SCREEN_2) {
        sd = sd2;
    }

    if(selected_screen == SCREEN_3) {
        sd = sd3;
    }
    

   /* make sure that a icd product has been loaded and parsed */
   if(sd->icd_product == NULL) { 
     d = XmCreateErrorDialog(shell, "Error", NULL, 0);
     xmstr = XmStringCreateLtoR("A valid product has not been loaded for display",
                XmFONTLIST_DEFAULT_TAG);
     XtVaSetValues(XtParent(d), XmNtitle, "Error", NULL);
     XtVaSetValues(d, XmNmessageString, xmstr, NULL);
     XtUnmanageChild(XmMessageBoxGetChild(d, XmDIALOG_HELP_BUTTON));
     XtUnmanageChild(XmMessageBoxGetChild(d, XmDIALOG_CANCEL_BUTTON));
     XtManageChild(d);
     XmStringFree(xmstr);
     return;
   }


   if(sd->num_layers == 0) { 
     d = XmCreateInformationDialog(shell, "NOTE", NULL, 0);
     xmstr = XmStringCreateLtoR("The selected product has no data for display "
                                "(no Sym Block, no GAB, no TAB).",
                XmFONTLIST_DEFAULT_TAG);
     XtVaSetValues(XtParent(d), XmNtitle, "NOTE", NULL);
     XtVaSetValues(d, XmNmessageString, xmstr, NULL);
     XtUnmanageChild(XmMessageBoxGetChild(d, XmDIALOG_HELP_BUTTON));
     XtUnmanageChild(XmMessageBoxGetChild(d, XmDIALOG_CANCEL_BUTTON));
     XtManageChild(d);
     XmStringFree(xmstr);
     
     return;
   }
 

/*  BY=PASS HERE //////////////////////////////////////////////////////////// */
/*  THIS WORKS FOR THE NON-PROBLEM PRODUCTS USING select_all_packets */
/*  select_layer_or_packet DOES NOT WORK (for DPA) without opening */
/*  the dilog  */
   if(select_all_flag==TRUE) {
    
         /* overlay_but is on the main menu */
         XtVaGetValues(overlay_but,
             XmNset,    &is_set,
             NULL);
         
         if(is_set == XmSET) {   
            check_overlay(FALSE); /* do not overlay non-geographic content */

         } else {
            overlay_flag = FALSE;

         }

       /*  Fixed overlay issues with 56 USP, 57 DHR, and 108 DPA */
       /*          DPA still requires special handling due to multiple  */
       /*          2D array packets        */
       if(
           gp->prod_code == 81) {
            
             /*  Must open the dialog for DPA */
           
       } else {
           
           select_all_packets(NULL, NULL, NULL);
 
           return;          
       }  


    } /*  end if select_all_flag */
/* END BY-PASS HERE ///////////////////////////////////////////////////////// */


   if(verbose_flag)
       fprintf(stderr,"inside packet selection menu: num of layers=%u\n", 
                                                                  sd->num_layers);


   /* allocate memory for the composite string list */
   list_size=0;
   for(i=0; i<sd->num_layers; i++) {
      list_size += sd->layers[i].num_packets;
/* fprintf(stderr,"DEBUG num packets in layer %d is %d\n", */
/*                              i+1, sd->layers[i].num_packets + 1);     */
   }
   list_size += sd->num_layers;
/* DEBUG */
/*    fprintf(stderr,"DEBUG total number of list entries (layers + packets is %d\n", */
/*                                         list_size); */

   xmstr_packetselect = (XmString*)XtMalloc(sizeof(XmString) * list_size);




   list_index=0;  /* keep track of where we are in the output array */
   
   /* BUILD THE LIST OF LAYERS AND PACKETS FROM THE LAYER INFO SCREEN DATA */
   for(i=0; i<sd->num_layers; i++) {
       char entry_string[100];
       int index;
  
       if(verbose_flag)
           printf("current layer=%i\n",i+1);

       sprintf(entry_string,
           "%04d: Layer %3i      -----------------------------------------",
                                                   list_index,  i+1);
       xmstr_packetselect[list_index] = 
           XmStringCreateLtoR(entry_string, XmFONTLIST_DEFAULT_TAG);
       list_index++;

       if(verbose_flag)
           printf("store %s\n",entry_string);
    
       for(j=0; j<sd->layers[i].num_packets;j++) {
           char secondary_descript[51];
           /* create a string to be placed into the list */
           index = transfer_packet_code(sd->layers[i].codes[j]);
    
           if(sd->layers[i].codes[j]==0x0802 || sd->layers[i].codes[j]==0x0E03 ||
              sd->layers[i].codes[j]==0x3501 || sd->layers[i].codes[j]==0xAF1F ||
              sd->layers[i].codes[j]==0xBA07 || sd->layers[i].codes[j]==0xBA0F ) {
               sprintf(entry_string,
                       "%04d:       Item %03i:  Traditional Packet %4Xx - %s", 
                       list_index, j+1, sd->layers[i].codes[j], 
                       packet_name[index]);
           
           } else if(sd->layers[i].codes[j]==2801 || 
                     sd->layers[i].codes[j]==2802 ||
                     sd->layers[i].codes[j]==2803 || 
                     sd->layers[i].codes[j]==2804 ||
                     sd->layers[i].codes[j]==2805 || 
                     sd->layers[i].codes[j]==2806 ) {
               get_component_subtype(secondary_descript, sd->layers[i].codes[j], 
                                                       sd->layers[i].offsets[j] );
               sprintf(entry_string,
                       "%04d:       Item %03i:  Generic Component  28:%d  - %s %s", 
                   list_index, j+1, sd->layers[i].codes[j]-2800, 
                   packet_name[index], secondary_descript);
           
           } else
               sprintf(entry_string,
                       "%04d:       Item %03i:  Traditional Packet %4u  - %s", 
                       list_index, j+1, sd->layers[i].codes[j], 
                       packet_name[index]);
    
           if(verbose_flag)
               printf("store %s\n",entry_string);
           
           xmstr_packetselect[list_index] = 
             XmStringCreateLtoR(entry_string,XmFONTLIST_DEFAULT_TAG);
           list_index++;
       } /*  end for num packets */
       
   } /*  end for num layers */

   if(verbose_flag)
       fprintf(stderr, "done creating list\n");

   /* CREATE AND OPEN THE PACKET SELECTION DIALOG WINDOW */

   xmstr =  XmStringCreateLtoR("Product Packets", XmFONTLIST_DEFAULT_TAG);
   dialog = XmCreateSelectionDialog(shell, "packet_displayd", NULL, 0);
   XtVaSetValues(dialog,
         XmNlistItems,        xmstr_packetselect,
         XmNlistItemCount,    list_index,
         XmNvisibleItemCount, 12,
         XmNdialogStyle,      XmDIALOG_PRIMARY_APPLICATION_MODAL,
         XmNlistLabelString,  xmstr,
         XmNmarginHeight,     0,
         XmNmarginWidth,      0,
         NULL);
   XmStringFree(xmstr);

   XtVaSetValues(XtParent(dialog), 
         XmNtitle,     sel_prod_buf,
         NULL);    


   /* default select first item in list */
   XmListSelectPos(XmSelectionBoxGetChild(dialog, XmDIALOG_LIST), 1, True);


   if(verbose_flag)
       printf("  total number of packets and layers = %d\n",  list_index);
   overlay_flag = FALSE;

   /* add a toggle to say whether we want an overlay */

  form = XtVaCreateManagedWidget("form", xmFormWidgetClass, dialog,
     NULL);

   overbut = XtVaCreateManagedWidget("Overlay Selected Packets / Components", 
      xmToggleButtonWidgetClass, form, 
      XmNtopAttachment,      XmATTACH_FORM,
      XmNtopOffset,          5,
      XmNleftAttachment,   XmATTACH_FORM,
      XmNleftOffset,       185,
      XmNrightAttachment,   XmATTACH_FORM,
      XmNrightOffset,       185,
      NULL);

   /* CVG 9.0 - make a change to not use, instead test for is_set */
   XtAddCallback(overbut, XmNvalueChangedCallback, overlayflag_callback, NULL);



    area_comp_but = XtVaCreateManagedWidget("Area Comp Display Options...",
       xmPushButtonWidgetClass, form,
       XmNtopAttachment,       XmATTACH_WIDGET,
       XmNtopWidget,           overbut,
       XmNtopOffset,           10,
       XmNleftAttachment,      XmATTACH_FORM,
       XmNleftOffset,          122,
       XmNbottomAttachment,    XmATTACH_FORM,
       XmNbottomOffset,        10,
       XmNrightAttachment,     XmATTACH_NONE,
       XmNwidth,               170,
       XmNheight,              25,
       NULL);
    XtAddCallback(area_comp_but, XmNactivateCallback, 
                                             area_comp_opt_window_callback, NULL);




    table_comp_but = XtVaCreateManagedWidget("Table Comp Display Options...",
       xmPushButtonWidgetClass, form,
       XmNtopAttachment,       XmATTACH_WIDGET,
       XmNtopWidget,           overbut,
       XmNtopOffset,           10,
       XmNleftAttachment,      XmATTACH_WIDGET,
       XmNleftWidget,          area_comp_but,
       XmNleftOffset,          30,
       XmNbottomAttachment,    XmATTACH_NONE,
       XmNrightAttachment,     XmATTACH_NONE,
       
       XmNwidth,               170,
       XmNheight,              25,
       NULL);
    XtAddCallback(table_comp_but, XmNactivateCallback, 
                                           table_comp_opt_window_callback, NULL);

    XtSetSensitive(table_comp_but, False);





   /* get rid of buttons 'n' stuff we don't want */
   XtUnmanageChild(XmSelectionBoxGetChild(dialog, XmDIALOG_SELECTION_LABEL));
   XtUnmanageChild(XmSelectionBoxGetChild(dialog, XmDIALOG_TEXT));

   XtAddCallback(dialog, XmNokCallback, packetselectall_callback, NULL);
   
   XtAddCallback(dialog, XmNapplyCallback, packetselection_Callback, NULL);

   XtAddCallback(dialog, XmNhelpCallback, help_window_callback, helpfile);


   XtVaSetValues(dialog,
          XmNokLabelString,     
               XmStringCreateLtoR("OK (Select All)", XmFONTLIST_DEFAULT_TAG),
          XmNapplyLabelString,     
               XmStringCreateLtoR("Single Layer/Packet", XmFONTLIST_DEFAULT_TAG),
          NULL);
/*  is there a problem (minor memory leak) here? */
   
   XtManageChild(dialog);
   packetsel_dialog = dialog;


   
   /* free allocated memory for the xmstring */
   for(i=0; i<list_index; i++)
       XmStringFree(xmstr_packetselect[i]);
   
   XtFree((char*)xmstr_packetselect);
   
/* DEBUG */
/* fprintf(stderr,"DEBUG packet_selection_menu() - " */
/*                "number of list entry strings freed is %d\n", */
/*                                           list_index+1); */
   
    
    /*  Fixed overlay issues with 56 USP, 57 DHR, and 108 DPA */
    /*          DPA still requires special handling due to multiple  */
    /*          2D array packets */
    if(

       gp->prod_code == 81) {   


        
        if((gp->prod_code == 81) && (dpa_info_flag == TRUE)) {
            xmstr = XmStringCreateLtoR(
              "The DPA product requires special attention.  Because of the      \n"
              "nature of the product, each layer / packet must be displayed     \n"
              "individually. The 'Select All' function is ignored.            \n\n"
              "DPA is considered a non-geographic product because an LFM        \n"
              "projection is not used when displayed. The 'Overlay Packet'      \n"
              "selection is ignored when either the previously displayed product\n"
              "or the product being displayed is configured as non-geographic.  \n",
              XmFONTLIST_DEFAULT_TAG);

            d = XmCreateInformationDialog(dialog, "NOTE", NULL, 0);
            XtVaSetValues(XtParent(d), XmNtitle, "NOTE", NULL);
            XtVaSetValues(d, XmNmessageString, xmstr, NULL);
            XtUnmanageChild(XmMessageBoxGetChild(d, XmDIALOG_HELP_BUTTON));
            XtUnmanageChild(XmMessageBoxGetChild(d, XmDIALOG_CANCEL_BUTTON));
            XtManageChild(d);
   
            again_box = XtVaCreateManagedWidget("Do Not Show This Message Again "\
                                                "                               "\
                                                "                               ", 
                 xmToggleButtonWidgetClass,  d,
                 XmNset,                     XmUNSET,
                 NULL);
            XtAddCallback(again_box, XmNvalueChangedCallback, 
                                                         dpa_not_again_cb, NULL);
            
            XmStringFree(xmstr);
         
        } /*  end second if product_code 81 && dpa_info_flag */
        
    } /*  end first if product_code 81 */


     
}  /*  end packet_selection_menu */
Exemplo n.º 11
0
static void
Create(
        Display *display,
        Widget parent,
        Widget *shell,
        XtPointer *dialog )
{
   ChangeDirRec * change_dir_rec;
   XmString prompt;
   Widget w;
   Arg args[8];
   int n;
   XtTranslations trans_table;
   Widget change_dir;


   /*  Allocate the change directory dialog instance record.  */

   change_dir_rec = (ChangeDirRec *) XtMalloc (sizeof (ChangeDirRec));

   prompt = XmStringCreateLocalized (((char *)GETMESSAGE(2,14, "Destination Folder:")));

   trans_table = XtParseTranslationTable(translations_space);
   n = 0;
   XtSetArg (args[n], XmNselectionLabelString, prompt);		n++;
   XtSetArg (args[n], XmNokLabelString, okXmString);		n++;
   XtSetArg (args[n], XmNcancelLabelString, cancelXmString);	n++;
   XtSetArg (args[n], XmNhelpLabelString, helpXmString);	n++;
   XtSetArg (args[n], XmNautoUnmanage, False);			n++;
   XtSetArg (args[n], XmNtextTranslations, trans_table);	n++;
   change_dir = change_dir_rec->change_dir =
      XmCreateSelectionDialog (parent, "change_directory", args, n);
   change_dir_rec->shell = XtParent(change_dir);

   XmStringFree (prompt);

   /* Add the help callback to each of the important sub-components */
   XtAddCallback(change_dir, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);
   w = XmSelectionBoxGetChild(change_dir, XmDIALOG_APPLY_BUTTON);
   XtAddCallback(w, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);
   w = XmSelectionBoxGetChild(change_dir, XmDIALOG_CANCEL_BUTTON);
   XtAddCallback(w, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);
   w = XmSelectionBoxGetChild(change_dir, XmDIALOG_HELP_BUTTON);
   XtAddCallback(w, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);
   XtAddCallback(w, XmNactivateCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);
   w = XmSelectionBoxGetChild(change_dir, XmDIALOG_OK_BUTTON);
   XtAddCallback(w, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);
   w = XmSelectionBoxGetChild(change_dir, XmDIALOG_LIST);
   XtAddCallback(XtParent(w), XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);
   w = XmSelectionBoxGetChild(change_dir, XmDIALOG_LIST_LABEL);
   XtAddCallback(w, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);
   w = XmSelectionBoxGetChild(change_dir, XmDIALOG_SELECTION_LABEL);
   XtAddCallback(w, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);
   w = XmSelectionBoxGetChild(change_dir, XmDIALOG_TEXT);
   XtAddCallback(w, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
                 HELP_CHANGEDIR_DIALOG_STR);


   /*  Adjust the margin widths and heights of each of the buttons  */

   XtSetArg (args[0], XmNmarginWidth, 6);
   XtSetArg (args[1], XmNmarginHeight, 2);

   w = XmSelectionBoxGetChild (change_dir_rec->change_dir, XmDIALOG_OK_BUTTON);
   XtSetValues (w, args, 2);

   w = XmSelectionBoxGetChild (change_dir_rec->change_dir,
                                                         XmDIALOG_HELP_BUTTON);
   XtSetValues (w, args, 2);

   w = XmSelectionBoxGetChild (change_dir_rec->change_dir,
                                                       XmDIALOG_CANCEL_BUTTON);
   XtSetValues (w, args, 2);

   XtUnmanageChild(XmSelectionBoxGetChild (change_dir_rec->change_dir,
                   XmDIALOG_APPLY_BUTTON));


   /*  Adjust the decorations for the dialog shell of the dialog  */

   XtSetArg(args[0], XmNmwmFunctions, MWM_FUNC_MOVE | MWM_FUNC_CLOSE);
   XtSetArg(args[1], XmNmwmDecorations,
             MWM_DECOR_BORDER | MWM_DECOR_TITLE);
   XtSetValues (change_dir_rec->shell, args, 2);

   XtSetArg(args[0], XmNcancelButton, w);
   XtSetValues (change_dir_rec->change_dir, args, 1);

   /*  Set the return values for the dialog widget and dialog instance.  */

   *shell = change_dir_rec->change_dir;
   *dialog = (XtPointer) change_dir_rec;

}