示例#1
0
extern void
set_dssw_times(DSSW *dssw) {
	XmString	xmstr;
	Props		*p = (Props *)dssw->cal->properties;
	DisplayType	dt = get_int_prop(p, CP_DEFAULTDISP);

	XtVaSetValues(dssw->start_text, XmNvalue, dssw->start_val.val,
		NULL);
	XtVaSetValues(dssw->stop_text, XmNvalue, dssw->stop_val.val,
		NULL);

	xmstr = XmStringCreateLocalized(dssw->start_val.val);
	XtVaSetValues(XmOptionButtonGadget(dssw->start_menu),
		XmNlabelString, xmstr,
		NULL);
	XmStringFree(xmstr);
	xmstr = XmStringCreateLocalized(dssw->stop_val.val);
	XtVaSetValues(XmOptionButtonGadget(dssw->stop_menu),
		XmNlabelString, xmstr,
		NULL);
	XmStringFree(xmstr);

	if (dt == HOUR12) {
		if (dssw->start_val.block == TIME_AM)
			XmToggleButtonSetState(dssw->start_am, True, True);
		else
			XmToggleButtonSetState(dssw->start_pm, True, True);
		if (dssw->stop_val.block == TIME_AM)
			XmToggleButtonSetState(dssw->stop_am, True, True);
		else
			XmToggleButtonSetState(dssw->stop_pm, True, True);
	}
}
示例#2
0
Widget
ui_optionmenu_add_item(
    Widget      opmenu,
    STRING      item_str
)
{
    XmString    xmitem;
    Widget	cascade_btn = NULL;
    Widget	menu = NULL;
    Widget	mpb = NULL;
    int		ret = 0;
 
    if ((cascade_btn = XmOptionButtonGadget(opmenu)) != NULL)
    {
	XtVaGetValues(cascade_btn, XmNsubMenuId, &menu, NULL);
	if (menu)
	{
	    xmitem = XmStringCreateLocalized(item_str);
            mpb = XtVaCreateManagedWidget(item_str,
                xmPushButtonWidgetClass,
                menu,
                XmNlabelString, xmitem,
                NULL);
	    XmStringFree(xmitem);
 	}
    }

    return (mpb);
}
示例#3
0
文件: choice.cpp 项目: EdgarTx/wx
int wxChoice::GetSelection() const
{
    XmString text;
    Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget);
    XtVaGetValues (label,
        XmNlabelString, &text,
        NULL);
    wxXmString freeMe(text);
    wxString s = wxXmStringToString( text );

    if (!s.empty())
    {
        int i = 0;
        for (wxStringList::compatibility_iterator node = m_stringList.GetFirst ();
             node; node = node->GetNext ())
        {
            if (wxStrcmp(node->GetData(), s.c_str()) == 0)
            {
                return i;
            }
            else
                i++;
        }            // for()

        return -1;
    }
    return -1;
}
示例#4
0
文件: choice.cpp 项目: EdgarTx/wx
void wxChoice::SetSelection(int n)
{
    m_inSetValue = true;

    wxStringList::compatibility_iterator node = m_stringList.Item(n);
    if (node)
    {
#if 0
        Dimension selectionWidth, selectionHeight;
#endif
        wxXmString text( node->GetData() );
// MBN: this seems silly, at best, and causes wxChoices to be clipped:
//      will remove "soon"
#if 0
        XtVaGetValues ((Widget) m_widgetArray[n],
                       XmNwidth, &selectionWidth,
                       XmNheight, &selectionHeight,
                       NULL);
#endif
        Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget);
        XtVaSetValues (label,
            XmNlabelString, text(),
            NULL);
#if 0
        XtVaSetValues ((Widget) m_buttonWidget,
            XmNwidth, selectionWidth, XmNheight, selectionHeight,
            XmNmenuHistory, (Widget) m_widgetArray[n], NULL);
#endif
    }
    m_inSetValue = false;
}
示例#5
0
void
ui_optionmenu_change_label(
    Widget	opmenu,
    STRING	new_str
)
{
    Widget	opmenu_label = NULL;
    XmString	new_xmstr;
    XmString	old_xmstr = NULL;

    opmenu_label = XmOptionButtonGadget(opmenu);
    if ((opmenu_label != NULL) && (new_str != NULL))
    {
	new_xmstr = XmStringCreateLocalized(new_str);
	XtVaGetValues(opmenu_label, XmNlabelString, &old_xmstr, NULL);
	
	/* If the two labels are different, then change
	 * the optionmenu label.
	 */
	if (!XmStringCompare(old_xmstr, new_xmstr))
	{
	    XtVaSetValues(opmenu_label,
                          XmNlabelString, new_xmstr,
                          NULL);
	}
	XmStringFree(new_xmstr);
    }
}
示例#6
0
void wxChoice::SetSelection(int n)
{
    m_inSetValue = true;

#if 0
    Dimension selectionWidth, selectionHeight;
#endif
    wxXmString text( m_stringArray[n] );
// MBN: this seems silly, at best, and causes wxChoices to be clipped:
//      will remove "soon"
#if 0
    XtVaGetValues ((Widget) m_widgetArray[n],
                    XmNwidth, &selectionWidth,
                    XmNheight, &selectionHeight,
                    NULL);
#endif
    Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget);
    XtVaSetValues (label,
        XmNlabelString, text(),
        NULL);
#if 0
    XtVaSetValues ((Widget) m_buttonWidget,
        XmNwidth, selectionWidth, XmNheight, selectionHeight,
        XmNmenuHistory, (Widget) m_widgetArray[n], NULL);
#endif

    m_inSetValue = false;
}
示例#7
0
// TODO auto-sorting is not supported by the code
int wxChoice::DoInsertItems(const wxArrayStringsAdapter& items,
                            unsigned int pos,
                            void **clientData, wxClientDataType type)
{
#ifndef XmNpositionIndex
    wxCHECK_MSG( pos == GetCount(), -1, wxT("insert not implemented"));
#endif

    const unsigned int numItems = items.GetCount();
    AllocClientData(numItems);
    for( unsigned int i = 0; i < numItems; ++i, ++pos )
    {
        Widget w = XtVaCreateManagedWidget (GetLabelText(items[i]),
#if wxUSE_GADGETS
            xmPushButtonGadgetClass, (Widget) m_menuWidget,
#else
            xmPushButtonWidgetClass, (Widget) m_menuWidget,
#endif
#ifdef XmNpositionIndex
            XmNpositionIndex, pos,
#endif
            NULL);

        wxDoChangeBackgroundColour((WXWidget) w, m_backgroundColour);

        if( m_font.IsOk() )
            wxDoChangeFont( w, m_font );

        m_widgetArray.Insert(w, pos);

        char mnem = wxFindMnemonic (items[i]);
        if (mnem != 0)
            XtVaSetValues (w, XmNmnemonic, mnem, NULL);

        XtAddCallback (w, XmNactivateCallback,
                       (XtCallbackProc) wxChoiceCallback,
                       (XtPointer) this);

        if (m_stringArray.GetCount() == 0 && m_buttonWidget)
        {
            XtVaSetValues ((Widget) m_buttonWidget, XmNmenuHistory, w, NULL);
            Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget);
            wxXmString text( items[i] );
            XtVaSetValues (label,
                XmNlabelString, text(),
                NULL);
        }

        m_stringArray.Insert(items[i], pos);

        InsertNewItemClientData(pos, clientData, i, type);
    }

    return pos - 1;
}
示例#8
0
文件: color.c 项目: rmill/fbi-2.07
static void
color_lock(Widget widget, XtPointer client_data, XtPointer calldata)
{
    struct ida_coledit *me = client_data;
    XmToggleButtonCallbackStruct *cb = calldata;
    Widget label,button;

    label  = XmOptionLabelGadget(me->vals);
    button = XmOptionButtonGadget(me->vals);
    me->lock = cb->set;
    XtVaSetValues(label,XtNsensitive,!me->lock,NULL);
    XtVaSetValues(button,XtNsensitive,!me->lock,NULL);
}
示例#9
0
文件: spec.c 项目: ncareol/ncplot
/* -------------------------------------------------------------------- */
static void setDefaults()
{
  size_t i, x;
  Arg	args[2];
  XmString name;

  /* Set default values for SegLen, Detrend, and Window.
   */
  for (x = i = 0; segLenInfo[i].name; ++i)
    if ((size_t)segLenInfo[i].client == psd[0].M)
      x = i;

  name = XmStringCreateLocalized(segLenInfo[x].name);
  XtSetArg(args[0], XmNlabelString, name);
  XtSetValues(XmOptionButtonGadget(slOpMenu), args, 1);
  XmStringFree(name);
 
  for (x = i = 0; windowInfo[i].name; ++i)
    if ((long)windowInfo[i].client == (long)psd[0].windowFn)
      x = i;

  name = XmStringCreateLocalized(windowInfo[x].name);
  XtSetArg(args[0], XmNlabelString, name);
  XtSetValues(XmOptionButtonGadget(winOpMenu), args, 1);
  XmStringFree(name);
 
  for (x = i = 0; detrendInfo[i].name; ++i)
    if ((long)detrendInfo[i].client == (long)psd[0].detrendFn)
      x = i;
 
  name = XmStringCreateLocalized(detrendInfo[x].name);
  XtSetArg(args[0], XmNlabelString, name);
  XtSetValues(XmOptionButtonGadget(dtOpMenu), args, 1);
  XmStringFree(name);
 
}	/* END SETDEFAULTS */
示例#10
0
文件: choice.cpp 项目: EdgarTx/wx
int wxChoice::DoInsert(const wxString& item, unsigned int pos)
{
#ifndef XmNpositionIndex
    wxCHECK_MSG( pos == GetCount(), -1, wxT("insert not implemented"));
#endif
    Widget w = XtVaCreateManagedWidget (GetLabelText(item),
#if wxUSE_GADGETS
        xmPushButtonGadgetClass, (Widget) m_menuWidget,
#else
        xmPushButtonWidgetClass, (Widget) m_menuWidget,
#endif
#ifdef XmNpositionIndex
        XmNpositionIndex, pos,
#endif
        NULL);

    wxDoChangeBackgroundColour((WXWidget) w, m_backgroundColour);

    if( m_font.Ok() )
        wxDoChangeFont( w, m_font );

    m_widgetArray.Insert(w, pos);

    char mnem = wxFindMnemonic (item);
    if (mnem != 0)
        XtVaSetValues (w, XmNmnemonic, mnem, NULL);

    XtAddCallback (w, XmNactivateCallback,
                   (XtCallbackProc) wxChoiceCallback,
                   (XtPointer) this);

    if (m_noStrings == 0 && m_buttonWidget)
    {
        XtVaSetValues ((Widget) m_buttonWidget, XmNmenuHistory, w, NULL);
        Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget);
        wxXmString text( item );
        XtVaSetValues (label,
            XmNlabelString, text(),
            NULL);
    }
    // need to ditch wxStringList for wxArrayString
    m_stringList.Insert(pos, MYcopystring(item));
    m_noStrings ++;

    return pos;
}
示例#11
0
void
ui_optionmenu_change_label_pixmap(
    Widget      opmenu,
    Pixmap      pixmap
)
{
    Widget opmenu_label;
 
    opmenu_label = XmOptionButtonGadget(opmenu);
 
    if (opmenu_label != NULL)
    {
        XtVaSetValues(opmenu_label,
                XmNlabelPixmap, pixmap,
                XmNlabelType,   XmPIXMAP,
                NULL);
    }
}
示例#12
0
void FromWhere(Widget w, XtPointer client_data, XtPointer call_data)
{
  Arg args[1];
  Widget whichWidget;
  XFontStruct 	*fnt;
  XmFontList 	font1;

  whichWidget = XmGetPostedFromWidget ((Widget) client_data);

  XtSetArg(args[0], XmNshadowThickness, 4); 
  XtSetValues ((XmOptionButtonGadget(whichWidget)), args, 1);

  fnt = XLoadQueryFont(XtDisplay(Shell1), "8x13bold");
  font1 = XmFontListCreate(fnt, XmSTRING_DEFAULT_CHARSET);

  XtSetArg (args[0], XmNfontList, font1);
  XtSetValues ((XmOptionLabelGadget(whichWidget)), args, 1);

}
示例#13
0
Widget
ui_optionmenu_replace_item(
    Widget      opmenu,
    STRING      old_item_str,
    STRING      new_item_str
)
{
    Widget	item = NULL;
    Widget	opmenu_label = NULL;
    XmString	xmstr = NULL;
    XmString    new_item_xmstr = NULL;
    XmString	old_item_xmstr = NULL;

    item = ui_optionmenu_find_item(opmenu, old_item_str);
    if (item != NULL)
    {
	new_item_xmstr = XmStringCreateLocalized(new_item_str);

	/* Check if the item we're replacing is the one
	 * which is currently showing in the optionmenu.
	 * If so, change the string.
	 */
	old_item_xmstr = XmStringCreateLocalized(old_item_str);
	opmenu_label = XmOptionButtonGadget(opmenu);
	XtVaGetValues(opmenu_label, XmNlabelString, &xmstr, NULL);
	if (XmStringCompare(xmstr, old_item_xmstr))
	{
	    XtVaSetValues(opmenu_label, 
			  XmNlabelString, new_item_xmstr, 
			  NULL); 
	}

	/* Change the button label to the new string */
	XtVaSetValues(item, XmNlabelString, new_item_xmstr, NULL);

	XmStringFree(xmstr);
	XmStringFree(old_item_xmstr);
	XmStringFree(new_item_xmstr);
    }
    return (item);
}
示例#14
0
int wxChoice::GetSelection() const
{
    XmString text;
    Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget);
    XtVaGetValues (label,
        XmNlabelString, &text,
        NULL);
    wxXmString freeMe(text);
    wxString s = wxXmStringToString( text );

    if (!s.empty())
    {
        for (size_t i=0; i<m_stringArray.GetCount(); i++)
            if (m_stringArray[i] == s)
                return i;

        return wxNOT_FOUND;
    }

    return wxNOT_FOUND;
}
示例#15
0
int wxChoice::DoAppend(const wxString& item)
{
    Widget w = XtVaCreateManagedWidget (wxStripMenuCodes(item),
#if wxUSE_GADGETS
        xmPushButtonGadgetClass, (Widget) m_menuWidget,
#else
        xmPushButtonWidgetClass, (Widget) m_menuWidget,
#endif
        NULL);

    wxDoChangeBackgroundColour((WXWidget) w, m_backgroundColour);

    if( m_font.Ok() )
        wxDoChangeFont( w, m_font );

    m_widgetArray.Add(w);

    char mnem = wxFindMnemonic (item);
    if (mnem != 0)
        XtVaSetValues (w, XmNmnemonic, mnem, NULL);

    XtAddCallback (w, XmNactivateCallback,
                   (XtCallbackProc) wxChoiceCallback,
                   (XtPointer) this);

    if (m_noStrings == 0 && m_buttonWidget)
    {
        XtVaSetValues ((Widget) m_buttonWidget, XmNmenuHistory, w, NULL);
        Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget);
        wxXmString text( item );
        XtVaSetValues (label,
            XmNlabelString, text(),
            NULL);
    }
    m_stringList.Add(item);
    m_noStrings ++;

    return GetCount() - 1;
}
示例#16
0
Widget
ui_optionmenu_find_item(
    Widget      opmenu,
    STRING      item_str
)
{
    Widget      cascade_btn = NULL;
    Widget      menu = NULL;
    Widget	found_item = NULL;
    WidgetList	children = NULL;
    XmString    search_item, child = NULL;
    int         i, numChildren = 0;
    BOOL	Found = FALSE;

    if ((cascade_btn = XmOptionButtonGadget(opmenu)) != NULL)
    { 
        XtVaGetValues(cascade_btn, XmNsubMenuId, &menu, NULL);
        if (menu)   
        {
	    search_item = XmStringCreateLocalized(item_str);
	    XtVaGetValues(menu,
                        XmNnumChildren, &numChildren,
                        XmNchildren, &children,
                        NULL);
	    for (i=0; i < numChildren && !Found; i++)
	    {
		XtVaGetValues(children[i], XmNlabelString, &child, NULL);
		if (XmStringCompare(search_item, child))
		{
		    Found = TRUE;
		    found_item = children[i];
		}
	    }
	    XmStringFree(search_item);
	    XmStringFree(child);
	}
    }
    return (found_item);
}
示例#17
0
int
ui_optionmenu_num_items(
    Widget	opmenu
)
{
    Widget      cascade_btn = NULL;
    Widget      menu = NULL;
    int         numChildren = 0;

    if ( (opmenu != NULL) &&
	 ((cascade_btn = XmOptionButtonGadget(opmenu)) != NULL)
       )
    {
        XtVaGetValues(cascade_btn, XmNsubMenuId, &menu, NULL);
        if (menu)
	{
            XtVaGetValues(menu,
                        XmNnumChildren, &numChildren,
                        NULL);
	}
    }
    return (numChildren);
}
示例#18
0
void 
  create_appShell (Display *display, char *app_name, int app_argc, char **app_argv)
{
	Widget children[12];      /* Children to manage */
	Arg al[64];           /* Arg List */
	register int ac = 0;      /* Arg Count */
	char from_s [256];    /* For font list conversion */
	XrmValue from_value, to_value; /* ditto */
	int fg, bg;           /* colour values for pixmaps */ 
	XmString *list_items; /* For list items */
	int list_item;        /* Index for list_items */
	XmString xmstrings[15];    /* temporary storage for XmStrings */
	Widget widget1 = (Widget)NULL;
	Widget widget2 = (Widget)NULL;
	Widget widget3 = (Widget)NULL;
	Widget widget7 = (Widget)NULL;
	Widget widget8 = (Widget)NULL;
	Widget widget9 = (Widget)NULL;
	Widget widget10 = (Widget)NULL;
	Widget widget11 = (Widget)NULL;
	Widget widget12 = (Widget)NULL;
	Widget generateButton = (Widget)NULL;
	Widget deleteButton = (Widget)NULL;
	Widget browseButton = (Widget)NULL;
	Widget widget13 = (Widget)NULL;
	Widget widget14 = (Widget)NULL;
	Widget widget15 = (Widget)NULL;
	Widget widget16 = (Widget)NULL;
	Widget widget17 = (Widget)NULL;
	Widget nameLabel = (Widget)NULL;
	Widget textLabel = (Widget)NULL;
	Widget severityLabel = (Widget)NULL;
	Widget widget25 = (Widget)NULL;
	Widget widget27 = (Widget)NULL;
	Widget widget28 = (Widget)NULL;
	Widget widget29 = (Widget)NULL;
	Widget widget30 = (Widget)NULL;
	Widget widget31 = (Widget)NULL;
	Widget widget32 = (Widget)NULL;
	Widget widget33 = (Widget)NULL;
	Widget moduleLabel = (Widget)NULL;
	Widget widget37 = (Widget)NULL;
	Widget *modbutton;	/* replaces 38-49 */
	Widget categoryLabel = (Widget)NULL;
	Widget descriptionLabel = (Widget)NULL;
	Widget toolMenu = (Widget)NULL;
	Widget toolCascade = (Widget)NULL;
	Widget lockMenu = (Widget)NULL;
	Widget lockCascade = (Widget)NULL;
	Widget unlockButton = (Widget)NULL;
	Widget lockButton = (Widget)NULL;
	int imod;
	XtSetArg(al[ac], XmNallowShellResize, TRUE); ac++;
	XtSetArg(al[ac], XmNargc, app_argc); ac++;
	XtSetArg(al[ac], XmNargv, app_argv); ac++;
	appShell = XtAppCreateShell ( app_name, "EditMessage", applicationShellWidgetClass, display, al, ac );
	ac = 0;
	XtSetArg(al[ac], XmNscrollingPolicy, XmAUTOMATIC); ac++;
	widget1 = XmCreateMainWindow ( appShell, "mainWindow", al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNhorizontalScrollBar, &widget2 ); ac++;
	XtSetArg(al[ac], XmNverticalScrollBar, &widget3 ); ac++;
	XtGetValues(widget1, al, ac );
	ac = 0;
	widget7 = XmCreateMenuBar ( widget1, "widget7", al, ac );
	widget9 = XmCreatePulldownMenu ( widget7, "fileMenu", al, ac );
	/*
	XtAddCallback(widget9, XmNunmapCallback, grab_input, NULL);
	*/
	widget10 = XmCreatePushButton ( widget9, "openButton", al, ac );
	widget11 = XmCreatePushButton ( widget9, "newButton", al, ac );
	ac = 0; XtSetArg(al[ac], XmNsensitive, False); ac++;
	widget12 = XmCreatePushButton ( widget9, "saveButton", al, ac );
	ac = 0; XtSetArg(al[ac], XmNsensitive, False); ac++;
	deleteButton = XmCreatePushButton ( widget9, "deleteButton", al, ac );
	ac = 0;
	widget13 = XmCreateSeparator ( widget9, "widget13", al, ac );
	widget14 = XmCreatePushButton ( widget9, "exitButton", al, ac );
	XtSetArg(al[ac], XmNsubMenuId, widget9); ac++;
	widget8 = XmCreateCascadeButton ( widget7, "fileCascade", al, ac );
	ac = 0;
	toolMenu =  XmCreatePulldownMenu ( widget7, "toolMenu", al, ac );
	/*
	XtAddCallback(toolMenu, XmNunmapCallback, grab_input, NULL);
	*/
	generateButton = XmCreatePushButton ( toolMenu, "generateButton", al, ac );
	browseButton = XmCreatePushButton ( toolMenu, "browseButton", al, ac );
	ac = 0;
	XtSetArg(al[ac], XmNsubMenuId, toolMenu); ac++;
	toolCascade = XmCreateCascadeButton ( widget7, "toolCascade", al, ac );

	lockMenu = XmCreatePulldownMenu ( widget7, "lockMenu", al, ac );
	/*
	XtAddCallback(widget9, XmNunmapCallback, grab_input, NULL);
	*/
	lockButton = XmCreatePushButton ( lockMenu, "lockButton", al, ac );
	ac = 0; XtSetArg(al[ac], XmNsensitive, False); ac++;
	unlockButton = XmCreatePushButton ( lockMenu, "unlockButton", al, ac );
	ac = 0;
	XtSetArg(al[ac], XmNsubMenuId, lockMenu); ac++;
	lockCascade = XmCreateCascadeButton ( widget7, "lockCascade", al, ac );

	ac = 0;
	widget16 = XmCreatePulldownMenu ( widget7, "widget16", al, ac );
	/*
	XtAddCallback(widget16, XmNunmapCallback, grab_input, NULL);
	*/
	XtSetArg(al[ac], XmNsubMenuId, widget16); ac++;
	widget15 = XmCreateCascadeButton ( widget7, "helpCascade", al, ac );

	/* Hand-added */
	XtVaSetValues(widget7, XmNmenuHelpWidget, widget15, NULL);

	ac = 0; 
	widget17 = XmCreateForm ( widget1, "editMsgForm", al, ac );
	XtSetArg(al[ac], XmNwidth, 100); ac++;
	XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
	nameLabel = XmCreateLabel ( widget17, "nameLabel", al, ac );
	ac = 0;
	XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
	textLabel = XmCreateLabel ( widget17, "textLabel", al, ac );
	ac = 0;
	XtSetArg(al[ac], XmNmaxLength, 20); ac++;
	nameTextField = XmCreateTextField( widget17, "nameTextField", al, ac );
	XtAddCallback(nameTextField, XmNvalueChangedCallback, message_modified,
		      NULL);
	ac = 0;
	XtSetArg(al[ac], XmNmaxLength, 50); ac++;
	msgTextField = XmCreateTextField ( widget17, "msgTextField", al, ac );
	XtAddCallback(msgTextField, XmNvalueChangedCallback, message_modified,
		      NULL);
	ac = 0;
	XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
	severityLabel = XmCreateLabel ( widget17, "severityLabel", al, ac );
	ac = 0;
	severityMenu = XmCreatePulldownMenu ( widget17, "severityPulldown", al, ac );
	/*
	XtAddCallback(severityMenu, XmNunmapCallback, grab_input, NULL);
	*/
	XtSetArg(al[0], XmNuserData, (caddr_t)SEV_DEBUG);
	widget27 = XmCreatePushButton ( severityMenu, "debugButton", al, 1);
	XtSetArg(al[0], XmNuserData, (caddr_t)SEV_INFORM);
	widget28 = XmCreatePushButton ( severityMenu, "informButton", al, 1 );
	XtSetArg(al[0], XmNuserData, (caddr_t)SEV_WARN);
	widget29 = XmCreatePushButton ( severityMenu, "warnButton", al, 1 );
	XtSetArg(al[0], XmNuserData, (caddr_t)SEV_ERROR);
	widget30 = XmCreatePushButton ( severityMenu, "errorButton", al, 1 );
	XtSetArg(al[0], XmNuserData, (caddr_t)SEV_ALARM);
	widget31 = XmCreatePushButton ( severityMenu, "alarmButton", al, 1 );
	XtSetArg(al[0], XmNuserData, (caddr_t)SEV_FATAL);
	widget32 = XmCreatePushButton ( severityMenu, "fatalButton", al, 1 );
	ac = 0;
	XtSetArg(al[ac], XmNuserData, (caddr_t)SEV_UNKNOWN); ac++;
	/* "Unknown" is only allowed if it is found in the DB */
	XtSetArg(al[ac], XmNsensitive, FALSE); ac++;
	widget33 = XmCreatePushButton (severityMenu, "unknownButton", al, ac );

	ac = 0;
	XtSetArg(al[ac], XmNsubMenuId, severityMenu); ac++;
	severityOptionMenu = XmCreateOptionMenu ( widget17, "severityOptionMenu", al, ac );
	ac = 0;
	widget25 = XmOptionButtonGadget ( severityOptionMenu );
	XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
	moduleLabel = XmCreateLabel ( widget17, "moduleLabel", al, ac );
	ac = 0;
	moduleMenu = XmCreatePulldownMenu ( widget17, "moduleMenu", al, ac );
	/*
	XtAddCallback(moduleMenu, XmNunmapCallback, grab_input, NULL);
	*/
	
	/* Create the button for the chosen module as the default.
	   */
	if (strcmp(module_names[0], g_module)) {
	  for (imod=0; imod<nmodule_names; imod++) 
	    if (!strcmp(module_names[imod], g_module)) break;
	  strcpy(module_names[imod], module_names[0]);
	  strcpy(module_names[0], g_module);
	}
	modbutton = (Widget *)XtMalloc(nmodule_names * sizeof(Widget));
	for (imod = 0; imod < nmodule_names; imod++) {
	  XtSetArg(al[0], XmNuserData, module_names[imod]);
	  modbutton[imod] = XmCreatePushButton(moduleMenu, module_names[imod], 
					       al, 1 );
	}
	XtSetArg(al[ac], XmNsubMenuId, moduleMenu); ac++;
	moduleOptionMenu = XmCreateOptionMenu ( widget17, "moduleOptionMenu", al, ac );
	ac = 0;
	widget37 = XmOptionButtonGadget ( moduleOptionMenu );
	XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
	categoryLabel = XmCreateLabel ( widget17, "categoryLabel", al, ac );
	ac = 0;
	categoryTextField = XmCreateTextField ( widget17, "categoryTextField", al, ac );
	XtAddCallback(categoryTextField, XmNvalueChangedCallback, 
		      message_modified, NULL);
	XtSetArg(al[ac], XmNwidth, 101); ac++;
	XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
	descriptionLabel = XmCreateLabel ( widget17, "descriptionLabel", al, ac );
	ac = 0;
	XtSetArg(al[ac], XmNmaxLength, 255); ac++;
	descriptionText = XmCreateText ( widget17, "descriptionText", al, ac );
	XtAddCallback(descriptionText, XmNvalueChangedCallback, 
		      message_modified, NULL);
	ac = 0;
	children[ac++] = widget10;
	children[ac++] = widget11;
	children[ac++] = widget12;
	children[ac++] = deleteButton;
	children[ac++] = widget13;
	children[ac++] = widget14;
	XtManageChildren(children, ac);

	ac = 0;
	children[ac++] = generateButton;
	children[ac++] = browseButton;
	XtManageChildren(children, ac);

	ac = 0;
	children[ac++] = unlockButton;
	children[ac++] = lockButton;
	XtManageChildren(children, ac);

	ac = 0;
	children[ac++] = widget8;
	children[ac++] = widget15;
	children[ac++] = toolCascade;
	children[ac++] = lockCascade;
	XtManageChildren(children, ac);

	ac = 0;
	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, nameTextField); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNbottomWidget, nameTextField); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
	XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNrightWidget, nameTextField); ac++;
        XtSetValues ( nameLabel,al, ac );

	ac = 0;
	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, msgTextField); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNbottomWidget, msgTextField); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
	XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNrightWidget, msgTextField); ac++;
        XtSetValues ( textLabel,al, ac );

	ac = 0;
	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_POSITION); ac++;

        XtSetValues ( nameTextField,al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, nameTextField); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNleftWidget, nameTextField); ac++;
        XtSetValues ( msgTextField,al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, severityOptionMenu); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNbottomWidget, severityOptionMenu); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
	XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNrightWidget, severityOptionMenu); ac++;
        XtSetValues ( severityLabel,al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, msgTextField); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNleftWidget, msgTextField); ac++;
	XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
        XtSetValues ( severityOptionMenu,al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, moduleOptionMenu); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNbottomWidget, moduleOptionMenu); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
	XtSetArg(al[ac], XmNleftOffset, 0); ac++;
	XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNrightWidget, moduleOptionMenu); ac++;
        XtSetValues ( moduleLabel,al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, severityOptionMenu); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNleftWidget, severityOptionMenu); ac++;
	XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
        XtSetValues ( moduleOptionMenu,al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, categoryTextField); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNbottomWidget, categoryTextField); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
	XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNrightWidget, categoryTextField); ac++;
        XtSetValues ( categoryLabel,al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, moduleOptionMenu); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNleftWidget, moduleOptionMenu); ac++;
        XtSetValues ( categoryTextField,al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, descriptionText); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNbottomWidget, descriptionText); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
	XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNrightWidget, descriptionText); ac++;
        XtSetValues ( descriptionLabel,al, ac );
	ac = 0;

	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
	XtSetArg(al[ac], XmNtopWidget, categoryTextField); ac++;
	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
	XtSetArg(al[ac], XmNleftWidget, categoryTextField); ac++;
        XtSetValues ( descriptionText,al, ac );

	XtAddCallback(widget10, XmNactivateCallback, open_message, NULL);
	XtAddCallback(browseButton, XmNactivateCallback, browse_messages, 
		      g_module);
	XtAddCallback(widget11, XmNactivateCallback, new_message, NULL);
	XtAddCallback(widget12, XmNactivateCallback, save_message, NULL);
	XtAddCallback(deleteButton, XmNactivateCallback, delete_message, NULL);
	XtAddCallback(generateButton, XmNactivateCallback, generate_header, NULL);
	XtAddCallback(lockButton, XmNactivateCallback, set_lock, widget9);
	XtAddCallback(unlockButton, XmNactivateCallback, unset_lock, widget9);
	XtAddCallback(widget14, XmNactivateCallback, exit_app, NULL);
	XtAddCallback(widget27, XmNactivateCallback, set_severity, NULL);
	XtAddCallback(widget28, XmNactivateCallback, set_severity, NULL);
	XtAddCallback(widget29, XmNactivateCallback, set_severity, NULL);
	XtAddCallback(widget30, XmNactivateCallback, set_severity, NULL);
	XtAddCallback(widget31, XmNactivateCallback, set_severity, NULL);
	XtAddCallback(widget32, XmNactivateCallback, set_severity, NULL);
	XtAddCallback(widget33, XmNactivateCallback, set_severity, NULL);
	for (imod = 0; imod < nmodule_names; imod++)
	  XtAddCallback(modbutton[imod], XmNactivateCallback, set_module, 
			NULL);
	ac = 0;
	children[ac++] = widget27;
	children[ac++] = widget28;
	children[ac++] = widget29;
	children[ac++] = widget30;
	children[ac++] = widget31;
	children[ac++] = widget32;
	children[ac++] = widget33;
	XtManageChildren(children, ac);
	XtManageChildren(modbutton, nmodule_names);
	ac = 0;
	children[ac++] = nameLabel;
	children[ac++] = textLabel;
	children[ac++] = nameTextField;
	children[ac++] = msgTextField;
	children[ac++] = severityLabel;
	children[ac++] = severityOptionMenu;
	children[ac++] = moduleLabel;
	children[ac++] = moduleOptionMenu;
	children[ac++] = categoryLabel;
	children[ac++] = categoryTextField;
	children[ac++] = descriptionLabel;
	children[ac++] = descriptionText;
	XtManageChildren(children, ac);
	ac = 0;
	XtManageChild ( widget7 );
	XtManageChild ( widget17 );
	XmMainWindowSetAreas(widget1, widget7, (Widget) NULL, widget2, widget3, widget17 );
	XtManageChild ( widget1);
}