Example #1
0
void
MakeSearchWidget(ManpageGlobals * man_globals, Widget parent)
{
    Widget dialog, command, text, cancel;
    Arg arglist[2];
    Cardinal num_args = 0;

    XtSetArg(arglist[0], XtNtransientFor, parent);
    man_globals->search_widget = XtCreatePopupShell(SEARCHNAME,
                                                    transientShellWidgetClass,
                                                    parent, arglist, 1);

    if (resources.clear_search_string) {
        XtSetArg(arglist[0], XtNvalue, "");
        num_args++;
    }

    dialog = XtCreateManagedWidget(DIALOG, dialogWidgetClass,
                                   man_globals->search_widget,
                                   arglist, num_args);

    if ((text = XtNameToWidget(dialog, "value")) == (Widget) NULL)
        PopupWarning(NULL, "Could not find text widget in MakeSearchWidget.");
    else
        XtSetKeyboardFocus(dialog, text);

    XawDialogAddButton(dialog, MANUALSEARCH, NULL, NULL);
    XawDialogAddButton(dialog, APROPOSSEARCH, NULL, NULL);
    XawDialogAddButton(dialog, CANCEL, NULL, NULL);

/*
 * This is a bit gross, but it get the cancel button underneath the
 * others, and forms them up to the right size..
 */

    if (((command = XtNameToWidget(dialog, MANUALSEARCH)) == (Widget) NULL) ||
        ((cancel = XtNameToWidget(dialog, CANCEL)) == (Widget) NULL))
        PopupWarning(NULL,
                     "Could not find manual search widget in MakeSearchWidget.");
    else {
        static const char *half_size[] = {
            MANUALSEARCH, APROPOSSEARCH, NULL
        };
        static const char *full_size[] = {
            "label", "value", CANCEL, NULL
        };

        num_args = 0;
        XtSetArg(arglist[num_args], XtNfromVert, command);
        num_args++;
        XtSetArg(arglist[num_args], XtNfromHoriz, NULL);
        num_args++;
        XtSetValues(cancel, arglist, num_args);
        FormUpWidgets(dialog, full_size, half_size);
    }

}
Example #2
0
void
MakeTopBox()
{
  Widget form, command, label; /* widgets. */
  Arg arglist[TOPARGS];		/* An argument list */
  Cardinal num_args = 0;	/* The number of arguments. */
  ManpageGlobals * man_globals;
  static char * full_size[] = {
    "topLabel", MANPAGE_BUTTON, NULL
  };
  static char * half_size[] = {
    HELP_BUTTON, QUIT_BUTTON, NULL
  };
  
/* create the top icon. */

  num_args = 0;
  XtSetArg(arglist[num_args], XtNiconPixmap,
	   XCreateBitmapFromData( XtDisplay(initial_widget), 
				 XtScreen(initial_widget)->root,
				 (char *)iconclosed_bits, iconclosed_width,
				 iconclosed_height));
  num_args++;
  XtSetArg(arglist[num_args], XtNtitle, resources.title);
  num_args++;
  XtSetArg(arglist[num_args], XtNiconic, resources.iconic);
  num_args++;
  top = XtCreatePopupShell(TOPBOXNAME, topLevelShellWidgetClass, 
			   initial_widget, arglist, num_args);

  form = XtCreateManagedWidget("form", formWidgetClass, top, 
			       NULL, (Cardinal) 0);

  label = XtCreateManagedWidget("topLabel", labelWidgetClass, form, 
			       NULL, (Cardinal) 0);

  num_args = 0;
  XtSetArg(arglist[num_args], XtNfromVert, label); num_args++;
  command = XtCreateManagedWidget(HELP_BUTTON, commandWidgetClass, form, 
				  arglist, num_args);

  /* use same vertical as help widget. */
  XtSetArg(arglist[num_args], XtNfromHoriz, command); num_args++;
  command = XtCreateManagedWidget(QUIT_BUTTON, commandWidgetClass, form, 
				  arglist, num_args);

  num_args = 0;
  XtSetArg(arglist[num_args], XtNfromVert, command); num_args++;
  command = XtCreateManagedWidget(MANPAGE_BUTTON, commandWidgetClass, form, 
				  arglist, num_args);

  help_widget = NULL;		/* We have not seen the help yet. */

  FormUpWidgets(form, full_size, half_size);

  XtRealizeWidget(top);
				/* add WM_COMMAND property */
  XSetCommand(XtDisplay(top), XtWindow(top), saved_argv, saved_argc);

  man_globals = (ManpageGlobals*) XtMalloc( (Cardinal) sizeof(ManpageGlobals));
  man_globals->label = NULL;
  man_globals->manpagewidgets.directory = NULL;
  man_globals->manpagewidgets.manpage = NULL;
  man_globals->manpagewidgets.box = NULL;
  man_globals->current_directory = 0;
  MakeSearchWidget(man_globals, top);
  MakeSaveWidgets(man_globals, top);

  SaveGlobals( (man_globals->This_Manpage = top), man_globals);
  XtMapWidget(top);
  AddCursor(top, resources.cursors.top);

/*
 * Set up ICCCM delete window.
 */
  wm_delete_window = XInternAtom(XtDisplay(top), "WM_DELETE_WINDOW",
				 False);
  XtOverrideTranslations
      (top, XtParseTranslationTable ("<Message>WM_PROTOCOLS: Quit()"));
  (void) XSetWMProtocols (XtDisplay(top), XtWindow(top),
			  &wm_delete_window, 1);
  

}