|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T c
Length: 55815 (0xda07) Types: TextFile Names: »create.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« └─⟦e5a54fb17⟧ └─⟦this⟧ »pp-5.0/Src/MTAconsole/create.c«
/* create.c: creation for all X widgets */ # ifndef lint static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Src/MTAconsole/RCS/create.c,v 5.0 90/09/20 16:19:35 pp Exp Locker: pp $"; # endif /* * $Header: /cs/research/pp/hubris/pp-beta/Src/MTAconsole/RCS/create.c,v 5.0 90/09/20 16:19:35 pp Exp Locker: pp $ * * $Log: create.c,v $ * Revision 5.0 90/09/20 16:19:35 pp * rcsforce : 5.0 public release * */ #include "console.h" #define TOTAL_WIDTH 600 #define VP_HEIGHT 120 static void create_commandwidgets(); static void create_channelwidgets(); static void create_mtawidgets(); static void create_msgwidgets(); static void create_controlwidgets(); static void create_monitorwidgets(); static void create_popupwidgets(); extern char *myname; Widget top, mainform, topform, nextform, mainvpane, channel_form, mta_form, msg_form, switchform, header = NULL, error = NULL, monitor_viewport, control_form; int errorUp = 0; extern char *ppversion; extern void client_msg_handler(); extern XFontStruct *normalFont; int strlen_msgall; Arg argList[10]; /* ARGSUSED */ create_widgets(display, context) Display *display; XtAppContext context; { Dimension ht; XtSetArg(argList[0], XtNfont, normalFont); XtAddEventHandler(top, NoEventMask, TRUE, client_msg_handler, NULL); mainform = WidgetCreate("mainform", formWidgetClass, top, NULL); mainvpane = WidgetCreate("mainvpane", panedWidgetClass, mainform, NULL); create_commandwidgets(); create_channelwidgets(); switchform = WidgetCreate("switchForm", formWidgetClass, mainvpane, NULL); create_controlwidgets(); create_popupwidgets(context); XtRealizeWidget(top); WidgetGet(topform, XtNheight, &ht, NULL); WidgetSet(topform, XtNmin, ht, XtNmax, ht, NULL); WidgetGet(nextform, XtNheight, &ht, NULL); WidgetSet(nextform, XtNmin, ht, XtNmax, ht, NULL); WidgetGet(channel_form, XtNheight, &ht, NULL); WidgetSet(channel_form, XtNmin, ht, XtNmax, ht, NULL); WidgetGet(mta_form, XtNheight, &ht, NULL); WidgetSet(mta_form, XtNmin, ht, XtNmax, ht, NULL); WidgetGet(msg_form, XtNheight, &ht, NULL); WidgetSet(msg_form, XtNmin, ht, XtNmax, ht, NULL); create_monitorwidgets(); XtInstallAllAccelerators(mainform, mainform); MapButtons(False); /* can't see before connect */ MapVolume(False); } Widget quit_command, connect_command, refresh_command, mode_command, config_command, qcontrol_command, total_volume_label, total_number_label, time_label, load1_label, load2_label, load1_sc, load2_sc; extern void Refresh(), Command(), Connectbutton(), Configure(), QControlPopup(), ChangeMode(), setLoad(); extern double load1, load2; extern XFontStruct *normalFont; extern unsigned long timeoutFor; static void create_commandwidgets() { Widget pane, form; topform = WidgetCreate("generalCommands", formWidgetClass, mainvpane, NULL); refresh_command = WidgetCreate("refreshCommand", commandWidgetClass, topform, XtNlabel, "refresh", NULL); if (normalFont != NULL) XtSetValues(refresh_command, argList, 1); XtAddCallback(refresh_command, XtNcallback, Refresh, NULL); quit_command = WidgetCreate("quitCommand", commandWidgetClass, topform, XtNlabel, "quit", NULL); XtAddCallback(quit_command, XtNcallback, Command, quit); if (normalFont != NULL) XtSetValues(quit_command, argList, 1); connect_command = WidgetCreate("connectCommand", commandWidgetClass, topform, XtNlabel, "connect", NULL); XtAddCallback(connect_command, XtNcallback, Connectbutton, connect); if (normalFont != NULL) XtSetValues(connect_command,argList, 1); mode_command = WidgetCreate("modeCommand", commandWidgetClass, topform, XtNlabel, "control", NULL); XtAddCallback(mode_command, XtNcallback, ChangeMode, NULL); if (normalFont != NULL) XtSetValues(mode_command,argList, 1); config_command = WidgetCreate("configCommand", commandWidgetClass, topform, XtNlabel, "configuration", NULL); XtAddCallback(config_command, XtNcallback, Configure, NULL); if (normalFont != NULL) XtSetValues(config_command,argList, 1); qcontrol_command = WidgetCreate("qcontrolCommand", commandWidgetClass, topform, XtNlabel, "Qmgr control", NULL); XtAddCallback(qcontrol_command, XtNcallback, QControlPopup, NULL); if (normalFont != NULL) XtSetValues(qcontrol_command,argList, 1); nextform = WidgetCreate("statusForm", formWidgetClass, mainvpane, NULL); #ifdef R4 pane = WidgetCreate("statusPane", panedWidgetClass, nextform, NULL); form = WidgetCreate("statusForm1", formWidgetClass, pane, NULL); load1_label = WidgetCreate("load1", labelWidgetClass, form, NULL); if (normalFont != NULL) XtSetValues(load1_label,argList, 1); load1_sc = WidgetCreate("load1StripChart", stripChartWidgetClass, form, XtNupdate, (int) (timeoutFor / 2000), NULL); XtAddCallback(load1_sc, XtNgetValue, setLoad, &load1); form = WidgetCreate("statusForm2", formWidgetClass, pane, NULL); load2_label = WidgetCreate("load2", labelWidgetClass, form, NULL); if (normalFont != NULL) XtSetValues(load2_label,argList, 1); load2_sc = WidgetCreate("load2StripChart", stripChartWidgetClass, form, XtNupdate, (int) (timeoutFor / 2000), NULL); XtAddCallback(load2_sc, XtNgetValue, setLoad, &load2); #endif form = WidgetCreate("statusFormEnd", formWidgetClass, nextform, NULL); total_volume_label = WidgetCreate("totalVolume", labelWidgetClass, form, XtNlabel, "Total volume", NULL); if (normalFont != NULL) XtSetValues(total_volume_label,argList, 1); total_number_label = WidgetCreate("totalNumber", labelWidgetClass, form, XtNlabel, "Total number of messages", NULL); if (normalFont != NULL) XtSetValues(total_number_label,argList, 1); time_label = WidgetCreate("timeLabel", labelWidgetClass, form, XtNlabel, "qmgr status", NULL); XtSetMappedWhenManaged(time_label, False); if (normalFont != NULL) XtSetValues(time_label,argList, 1); header = WidgetCreate("headerLabel", labelWidgetClass, form, XtNlabel, NO_CONNECTION, NULL); if (normalFont != NULL) XtSetValues(header,argList, 1); error = WidgetCreate("errorLabel", labelWidgetClass, form, XtNlabel, NO_CONNECTION, NULL); if (normalFont != NULL) XtSetValues(error,argList, 1); XtSetMappedWhenManaged(error, False); errorUp = 0; } Widget channels, channel_header, channel_commands, channel_stop, channel_start, channel_clear, channel_cacheadd, channel_downforce, channel_label, channel_info, channel_all, channel_viewport; extern struct chan_struct *currentchan; extern int max_chan_border, read_currentchan; char *curlabel, *channel_info_str, *create_channel_header(); int channel_info_strlen; static void create_channelwidgets() { Widget temp_form; char *str; channel_form = WidgetCreate("channelForm", formWidgetClass, mainvpane, NULL); channel_header = WidgetCreate("channelHeader", labelWidgetClass, channel_form, NULL); if (normalFont != NULL) XtSetValues(channel_header,argList, 1); WidgetGet(channel_header, XtNlabel, &str, NULL); /* check for ap defaults */ if (lexequ(str, "channelHeader") == 0) { printf("The application defaults aren't installed!\n"); exit(1); } channel_commands = WidgetCreate("channelCommands", boxWidgetClass, channel_form, NULL); channel_info = WidgetCreate("channelInfo", commandWidgetClass, channel_commands, XtNlabel, "info", NULL); if (normalFont != NULL) XtSetValues(channel_info,argList, 1); XtAddCallback(channel_info, XtNcallback, Command, chaninfo); channel_stop = WidgetCreate("channelStop", commandWidgetClass, channel_commands, XtNlabel, "disable", NULL); if (normalFont != NULL) XtSetValues(channel_stop,argList, 1); XtAddCallback(channel_stop, XtNcallback, Command, chanstop); channel_start = WidgetCreate("channelStart", commandWidgetClass, channel_commands, XtNlabel, "enable", NULL); if (normalFont != NULL) XtSetValues(channel_start,argList, 1); XtAddCallback(channel_start, XtNcallback, Command, chanstart); channel_clear = WidgetCreate("channelClear", commandWidgetClass, channel_commands, NULL); if (normalFont != NULL) XtSetValues(channel_clear,argList, 1); XtAddCallback(channel_clear, XtNcallback, Command, chanclear); channel_cacheadd = WidgetCreate("channelCacheadd", commandWidgetClass, channel_commands, NULL); if (normalFont != NULL) XtSetValues(channel_cacheadd,argList, 1); XtAddCallback(channel_cacheadd, XtNcallback, Command, chancacheadd); channel_downforce = WidgetCreate("channelDownforce", commandWidgetClass, channel_commands, NULL); if (normalFont != NULL) XtSetValues(channel_downforce,argList, 1); XtAddCallback (channel_downforce, XtNcallback, Command, chandownforce); currentchan = NULL; read_currentchan = 0; curlabel = create_channel_header(); channel_label = WidgetCreate("channelLabel", labelWidgetClass, channel_form, XtNlabel, curlabel, NULL); free(curlabel); if (normalFont != NULL) XtSetValues(channel_label,argList, 1); temp_form = WidgetCreate("channelForm2", formWidgetClass, mainvpane, NULL); channel_viewport = WidgetCreate("channelViewport", viewportWidgetClass, temp_form, NULL); channels = WidgetCreate("channels", boxWidgetClass, channel_viewport, XtNvSpace, (2*max_chan_border +1), NULL); channel_info_strlen = BUFSIZ; channel_info_str = calloc(1, (unsigned) channel_info_strlen); channel_all = WidgetCreate("channelAll", asciiStringWidgetClass, temp_form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNlength, channel_info_strlen, XtNstring, channel_info_str, XtNtextOptions, scrollVertical, NULL); XtSetMappedWhenManaged(channel_all,False); XtSetMappedWhenManaged(channel_form, False); XtSetSensitive(channel_commands,FALSE); } Widget control_vpane; static void create_controlwidgets() { control_form = WidgetCreate("controlForm", formWidgetClass, switchform, NULL); control_vpane = WidgetCreate("controlVpane", panedWidgetClass, control_form, NULL); create_mtawidgets(); create_msgwidgets(); } Widget mta_divider, mta_commands, mta_stop, mta_start, mta_clear, mta_cacheadd, mta_force, mta_downforce, mta_label, mta_info, mta_all, mta_viewport, mtas; extern struct mta_struct *currentmta; extern int read_currentmta; extern int max_mta_border; extern char *create_mta_header(); char *mta_info_str; int mta_info_strlen; static void create_mtawidgets() { Widget temp_form; mta_form = WidgetCreate("mtaForm", formWidgetClass, control_vpane, NULL); mta_divider = WidgetCreate("mtaDivider", labelWidgetClass, mta_form, NULL); if (normalFont != NULL) XtSetValues(mta_divider,argList, 1); mta_commands = WidgetCreate("mtaCommands", boxWidgetClass, mta_form, NULL); XtSetSensitive(mta_commands, FALSE); mta_info = WidgetCreate("mtaInfo", commandWidgetClass, mta_commands, XtNlabel, "info", NULL); if (normalFont != NULL) XtSetValues(mta_info,argList, 1); XtAddCallback(mta_info, XtNcallback, Command, mtainfo); mta_stop = WidgetCreate("mtaStop", commandWidgetClass, mta_commands, XtNlabel, "disable", NULL); if (normalFont != NULL) XtSetValues(mta_stop,argList, 1); XtAddCallback(mta_stop, XtNcallback, Command, mtastop); mta_start = WidgetCreate("mtaStart", commandWidgetClass, mta_commands, XtNlabel, "enable", NULL); if (normalFont != NULL) XtSetValues(mta_start,argList, 1); XtAddCallback(mta_start, XtNcallback, Command, mtastart); mta_clear = WidgetCreate("mtaClear", commandWidgetClass, mta_commands, NULL); if (normalFont != NULL) XtSetValues(mta_clear,argList, 1); XtAddCallback(mta_clear, XtNcallback, Command, mtaclear); mta_cacheadd = WidgetCreate("mtaCacheadd", commandWidgetClass, mta_commands, NULL); if (normalFont != NULL) XtSetValues(mta_cacheadd,argList, 1); XtAddCallback(mta_cacheadd, XtNcallback, Command, mtacacheadd); mta_force = WidgetCreate("mtaForce", commandWidgetClass, mta_commands, NULL); if (normalFont != NULL) XtSetValues(mta_force,argList, 1); XtAddCallback(mta_force, XtNcallback, Command, mtaforce); mta_downforce = WidgetCreate("mtaDownforce", commandWidgetClass, mta_commands, NULL); if (normalFont != NULL) XtSetValues(mta_downforce,argList, 1); XtAddCallback (mta_downforce, XtNcallback, Command, mtadownforce); currentmta = NULL; read_currentmta = 0; curlabel = create_mta_header(); mta_label = WidgetCreate("mtaLabel", labelWidgetClass, mta_form, XtNlabel, curlabel, NULL); free(curlabel); if (normalFont != NULL) XtSetValues(mta_label,argList, 1); temp_form = WidgetCreate("mtaForm2", formWidgetClass, control_vpane, NULL); mta_viewport = WidgetCreate("mtaViewport", viewportWidgetClass, temp_form, NULL); mtas = WidgetCreate("mtas", formWidgetClass, mta_viewport, XtNdefaultDistance, (2*max_mta_border+1), NULL); mta_info_strlen = BUFSIZ; mta_info_str = calloc(1, (unsigned) mta_info_strlen); mta_all = WidgetCreate("mtaAll", asciiStringWidgetClass, temp_form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNlength, mta_info_strlen, XtNstring, mta_info_str, XtNtextOptions, scrollVertical, NULL); XtSetMappedWhenManaged(mta_all,False); } Widget msg_divider, msg_commands, msg_stop, msg_start, msg_clear, msg_cacheadd, msg_force, msg_label, msg_info, msg_all, msgs_showall, msg_viewport, msgs; extern struct msg_struct *currentmsg; extern char *create_msg_header(); extern void MsgsShowAll(); char *msg_info_str; int msg_info_strlen; static void create_msgwidgets() { Widget temp_form; msg_form = WidgetCreate("msgForm", formWidgetClass, control_vpane, NULL); msg_divider = WidgetCreate("msgDivider", labelWidgetClass, msg_form, NULL); if (normalFont != NULL) XtSetValues(msg_divider,argList, 1); msg_commands = WidgetCreate("msgCommands", boxWidgetClass, msg_form, NULL); XtSetSensitive(msg_commands, FALSE); msg_info = WidgetCreate("msgInfo", commandWidgetClass, msg_commands, XtNlabel, "info", NULL); if (normalFont != NULL) XtSetValues(msg_info,argList, 1); XtAddCallback(msg_info, XtNcallback, Command, msginfo); msgs_showall = WidgetCreate("msgShowall", commandWidgetClass, msg_commands, NULL); if (normalFont != NULL) XtSetValues(msgs_showall,argList, 1); XtAddCallback(msgs_showall, XtNcallback, MsgsShowAll, NULL); XtSetMappedWhenManaged(msgs_showall, False); msg_stop = WidgetCreate("msgStop", commandWidgetClass, msg_commands, XtNlabel, "freeze", NULL); if (normalFont != NULL) XtSetValues(msg_stop,argList, 1); XtAddCallback(msg_stop, XtNcallback, Command, msgstop); msg_start = WidgetCreate("msgStart", commandWidgetClass, msg_commands, XtNlabel, "thaw", NULL); if (normalFont != NULL) XtSetValues(msg_start,argList, 1); XtAddCallback(msg_start, XtNcallback, Command, msgstart); msg_clear = WidgetCreate("msgClear", commandWidgetClass, msg_commands, NULL); if (normalFont != NULL) XtSetValues(msg_clear,argList, 1); XtAddCallback(msg_clear, XtNcallback, Command, msgclear); msg_cacheadd = WidgetCreate("msgCacheadd", commandWidgetClass, msg_commands, NULL); if (normalFont != NULL) XtSetValues(msg_cacheadd,argList, 1); XtAddCallback(msg_cacheadd, XtNcallback, Command, msgcacheadd); msg_force = WidgetCreate("msgForce", commandWidgetClass, msg_commands, NULL); if (normalFont != NULL) XtSetValues(msg_force,argList, 1); XtAddCallback(msg_force, XtNcallback, Command, msgforce); currentmsg = NULL; curlabel = create_msg_header(); msg_label = WidgetCreate("msgLabel", labelWidgetClass, msg_form, XtNlabel, curlabel, NULL); free(curlabel); if (normalFont != NULL) XtSetValues(msg_label,argList, 1); temp_form = WidgetCreate("msgForm2", formWidgetClass, control_vpane, NULL); msg_viewport = WidgetCreate("msgViewport", viewportWidgetClass, temp_form, NULL); msgs = WidgetCreate("msgs", formWidgetClass, msg_viewport, NULL); msg_info_strlen = BUFSIZ; msg_info_str = calloc(1, (unsigned) msg_info_strlen); msg_all = WidgetCreate("msgAll", asciiStringWidgetClass, temp_form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNlength, msg_info_strlen, XtNstring, msg_info_str, XtNtextOptions, scrollVertical | scrollHorizontal, NULL); strlen_msgall = 0; XtSetMappedWhenManaged(msg_all,False); } display_channelinfo_string(str) char *str; { Arg args[2]; XtTextSource old, new; char *oldstr = channel_info_str; channel_info_strlen = strlen(str); channel_info_str = strdup(str); XtSetArg(args[0], XtNstring, channel_info_str); XtSetArg(args[1], XtNlength, channel_info_strlen); new = XtStringSourceCreate(channel_all, args, 2); old = XtTextGetSource(channel_all); XtTextSetSource(channel_all, new, (XtTextPosition) 0); XtStringSourceDestroy(old); free(oldstr); } display_mtainfo_string(str) char *str; { Arg args[2]; XtTextSource old, new; char *oldstr = mta_info_str; mta_info_strlen = strlen(str); mta_info_str = strdup(str); XtSetArg(args[0], XtNstring, mta_info_str); XtSetArg(args[1], XtNlength, mta_info_strlen); new = XtStringSourceCreate(mta_all, args, 2); old = XtTextGetSource(mta_all); XtTextSetSource(mta_all, new, (XtTextPosition) 0); XtStringSourceDestroy(old); free(oldstr); } display_msginfo_string(str) char *str; { Arg args[2]; XtTextSource old, new; char *oldstr = msg_info_str; msg_info_strlen = strlen(str); msg_info_str = strdup(str); XtSetArg(args[0], XtNstring, msg_info_str); XtSetArg(args[1], XtNlength, msg_info_strlen); new = XtStringSourceCreate(msg_all, args, 2); old = XtTextGetSource(msg_all); XtTextSetSource(msg_all, new, (XtTextPosition) 0); XtStringSourceDestroy(old); free(oldstr); } Widget monitor_form; static void create_monitorwidgets() { Dimension wid, ht; WidgetGet(control_form, XtNwidth, &wid, XtNheight, &ht, NULL); monitor_viewport = WidgetCreate("monitorViewport", viewportWidgetClass, switchform, XtNwidth, wid, /*TOTAL_WIDTH,*/ XtNheight, ht, /* (2*VP_HEIGHT+4*26),*/ XtNmanaged, FALSE, NULL); monitor_form = WidgetCreate("monitorForm", formWidgetClass, monitor_viewport, XtNwidth, wid, XtNheight, ht, NULL); XtManageChild(monitor_viewport); XtSetMappedWhenManaged(monitor_viewport, True); XtSetMappedWhenManaged(control_form, False); } /* \f */ /* popups */ Popup_menu *yesno, *one, *two, *three, *config, *connectpopup, *qcontrol; Widget qversion, refresh_toggle, reconnect_toggle, backoff_toggle, confirm_toggle, heur_toggle, percent_form, line_form, auth_toggle; extern void previousField(), nextField(), thisField(), myinsert_char(), mydelete_char(), mymenupopdown(), curChan(), excl_curChan(), readChan(), curMta(), excl_curMta(), readMta(), curMsg(), excl_curMsg(), readMsg(), chanMode(), chanModeRead(), chanRefresh(), mtaMode(), mtaModeRead(), mtaRefresh(), QControl(), popup_OK(), popup_NOTOK(), config_OK(), connectpopup_OK(), configToggle(), heurToggle(); extern int autoRefresh, autoReconnect, backoff, confirm, auth; int newautoRefresh, newautoReconnect, newbackoff, newconfirm, newauth; Heuristic newheur; extern Heuristic heuristic; unsigned long newTimes; XtActionsRec actionTable[] = { {"previousField", previousField}, {"nextField", nextField}, {"thisField", thisField}, {"myinsert_char", myinsert_char}, {"mydelete_char", mydelete_char}, {"mymenupopdown", mymenupopdown}, {"curChan", curChan}, {"excl_curChan", excl_curChan}, {"readChan", readChan}, {"curMta", curMta}, {"excl_curMta", excl_curMta}, {"readMta", readMta}, {"curMsg", curMsg}, {"excl_curMsg", excl_curMsg}, {"readMsg", readMsg}, {"chanMode", chanMode}, {"chanModeRead", chanModeRead}, {"chanRefresh", chanRefresh}, {"mtaMode", mtaMode}, {"mtaModeRead", mtaModeRead}, {"mtaRefresh", mtaRefresh}, }; XtTranslations channel_monitorTranslations, mta_monitorTranslations, passwdTranslations; /*static char *channel_translationTable = "<Btn1Up>: curChan() readChan()\n\ <Btn2Up>: excl_curChan()\n\ <Btn3Up>: readChan()\n";*/ static char *channel_monitortranslationTable = "<Btn1Up>: chanModeRead()\n\ <Btn2Up>: chanMode()\n\ <Btn3Up>: chanRefresh()\n"; /*static char *mta_translationTable = "<Btn1Up>: curMta() readMta()\n\ <Btn2Up>: excl_curMta()\n\ <Btn3Up>: readMta()\n";*/ static char *mta_monitortranslationTable = "<Btn1Up>: mtaModeRead()\n\ <Btn2Up>: mtaMode()\n\ <Btn3Up>: mtaRefresh()\n"; /*static char *msg_translationTable = "<Btn1Up>: curMsg() readMsg()\n\ <Btn2Up>: excl_curMsg()\n\ <Btn3Up>: readMsg()\n";*/ /*static char *text_translationTable = "<Key>Up: previousField()\n\ <Key>Down: nextField()\n\ <Key>Tab: nextField()\n\ <Btn1Down>: thisField() select-start()\n";*/ static char *passwd_translationTable = "<Key>Up: previousField()\n\ <Key>Down: nextField()\n\ <Key>Tab: nextField()\n\ <Btn1Down>: thisField()\n\ <Key>Delete: mydelete_char()\n\ <Key>BackSpace: mydelete_char()\n\ <Key>: myinsert_char()\n"; /*static char *qcontrol_translationTable = "<BtnUp>: mymenupopdown()\n\ <Leave>: mymenupopdown()\n";*/ /*static char *OKAcceleratorTable = "#override\n\ <Key>Return: set() notify()";*/ static XtCallbackRec config_OK_callbacks[] = { {config_OK, NULL}, {NULL, NULL}, }; static Arg config_OK_args[] = { {XtNfromVert, NULL}, {XtNfromHoriz, NULL}, {XtNcallback, (XtArgVal) config_OK_callbacks}, }; static XtCallbackRec connectpopup_OK_callbacks[] = { {connectpopup_OK, NULL}, {NULL, NULL}, }; static Arg connectpopup_OK_args[] = { {XtNfromVert, NULL}, {XtNfromHoriz, NULL}, {XtNcallback, (XtArgVal) connectpopup_OK_callbacks}, }; static void create_defaultHostspopup() { } static void create_popupwidgets(context) XtAppContext context; { Widget OKwg, NOTOKwg, label, version; Arg arg[2]; int i; char *str = NULL; XtAppAddActions(context, actionTable, XtNumber(actionTable)); passwdTranslations = XtParseTranslationTable(passwd_translationTable); channel_monitorTranslations = XtParseTranslationTable(channel_monitortranslationTable); mta_monitorTranslations = XtParseTranslationTable(mta_monitortranslationTable); create_defaultHostspopup(); XtSetArg(arg[0], XtNallowShellResize, True); XtSetArg(arg[1], XtNinput, True); qcontrol = (Popup_menu *) calloc(1, sizeof(*qcontrol)); qcontrol->popup = XtCreatePopupShell("qcontrol", overrideShellWidgetClass, qcontrol_command, arg, 2); qcontrol->form = WidgetCreate("qcontrolForm", boxWidgetClass, qcontrol->popup, NULL); label = WidgetCreate("increaseMaxChannels", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_increasemaxchans); if (normalFont != NULL) XtSetValues(label,argList, 1); label = WidgetCreate("decreaseMaxChannels", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_decreasemaxchans); if (normalFont != NULL) XtSetValues(label,argList, 1); label = WidgetCreate("enableSubmission", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_enableSubmission); if (normalFont != NULL) XtSetValues(label,argList, 1); label = WidgetCreate("disableSubmission", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_disableSubmission); if (normalFont != NULL) XtSetValues(label,argList, 1); label = WidgetCreate("enableAll", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_enableAll); if (normalFont != NULL) XtSetValues(label,argList, 1); label = WidgetCreate("disableAll", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_disableAll); if (normalFont != NULL) XtSetValues(label,argList, 1); label = WidgetCreate("rereadQ", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_rereadQueue); if (normalFont != NULL) XtSetValues(label,argList, 1); label = WidgetCreate("restartQmgr", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_restart); if (normalFont != NULL) XtSetValues(label,argList, 1); label = WidgetCreate("gracefulStop", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_gracefulTerminate); if (normalFont != NULL) XtSetValues(label,argList, 1); label = WidgetCreate("emergencyStop", commandWidgetClass, qcontrol->form, NULL); XtAddCallback(label, XtNcallback, QControl, int_Qmgr_QMGROp_abort); if (normalFont != NULL) XtSetValues(label,argList, 1); yesno = (Popup_menu *) calloc(1, sizeof(*yesno)); yesno->popup = XtCreatePopupShell("yesno_popup", overrideShellWidgetClass, quit_command, arg, 2); yesno->form = WidgetCreate("yesnoForm", formWidgetClass, yesno->popup, NULL); OKwg = WidgetCreate("yesnoOK", commandWidgetClass, yesno->form, NULL); if (normalFont != NULL) XtSetValues(OKwg,argList, 1); yesno->op = unknown; XtAddCallback(OKwg, XtNcallback, popup_OK, &(yesno->op)); NOTOKwg = WidgetCreate("yesnoNotok", commandWidgetClass, yesno->form, NULL); if (normalFont != NULL) XtSetValues(NOTOKwg,argList, 1); XtAddCallback(NOTOKwg, XtNcallback, popup_NOTOK, &(yesno->op)); XtInstallAllAccelerators(yesno->form, yesno->form); one = (Popup_menu *) calloc(1, sizeof(*one)); one->tuple = (Popup_tuple *) calloc(1, sizeof(Popup_tuple)); one->numberOftuples = 1; one->popup = XtCreatePopupShell("onetext_popup", overrideShellWidgetClass, quit_command, arg, 2); one->form = WidgetCreate("oneForm", formWidgetClass, one->popup, NULL); OKwg = WidgetCreate("oneOk", commandWidgetClass, one->form, NULL); one->op = unknown; if (normalFont != NULL) XtSetValues(OKwg,argList, 1); XtAddCallback(OKwg, XtNcallback, popup_OK, &(one->op)); NOTOKwg = WidgetCreate("oneNotok", commandWidgetClass, one->form, NULL); if (normalFont != NULL) XtSetValues(NOTOKwg,argList, 1); XtAddCallback(NOTOKwg, XtNcallback, popup_NOTOK, &(one->op)); one->tuple[0].label = WidgetCreate("oneLabelOne", labelWidgetClass, one->form, XtNlabel, "clear cache on channel ", NULL); if (normalFont != NULL) XtSetValues(one->tuple[0].label,argList, 1); one->tuple[0].str = malloc(MAX_EDIT_STRING+1); if (normalFont != NULL) one->tuple[0].text = WidgetCreate("oneTextOne", asciiStringWidgetClass, one->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, one->tuple[0].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); else one->tuple[0].text = WidgetCreate("oneTextOne", asciiStringWidgetClass, one->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, one->tuple[0].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); XtInstallAllAccelerators(one->tuple[0].text, one->form); two = (Popup_menu *) calloc(1, sizeof(*two)); two->tuple = (Popup_tuple *) calloc(2, sizeof(Popup_tuple)); two->numberOftuples = 2; two->popup = XtCreatePopupShell("twotext_popup", overrideShellWidgetClass, quit_command, arg, 2); two->form = WidgetCreate("twoForm", formWidgetClass, two->popup, NULL); OKwg = WidgetCreate("twoOk", commandWidgetClass, two->form, NULL); if (normalFont != NULL) XtSetValues(OKwg,argList, 1); two->op = unknown; XtAddCallback(OKwg, XtNcallback, popup_OK, &(two->op)); NOTOKwg = WidgetCreate("twoNotok", commandWidgetClass, two->form, NULL); if (normalFont != NULL) XtSetValues(NOTOKwg,argList, 1); XtAddCallback(NOTOKwg, XtNcallback, popup_NOTOK, &(two->op)); two->tuple[0].label = WidgetCreate("twoLabelOne", labelWidgetClass, two->form, XtNlabel, "clear cache on channel", NULL); if (normalFont != NULL) XtSetValues(two->tuple[0].label,argList, 1); two->tuple[0].str = malloc(MAX_EDIT_STRING+1); if (normalFont != NULL) two->tuple[0].text = WidgetCreate("twoTextOne", asciiStringWidgetClass, two->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, two->tuple[0].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); else two->tuple[0].text = WidgetCreate("twoTextOne", asciiStringWidgetClass, two->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, two->tuple[0].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); two->tuple[1].label = WidgetCreate("twoLabelTwo", labelWidgetClass, two->form, XtNlabel, "clear cache on channel", NULL); if (normalFont != NULL) XtSetValues(two->tuple[1].label,argList, 1); two->tuple[1].str = malloc(MAX_EDIT_STRING+1); if (normalFont != NULL) two->tuple[1].text = WidgetCreate("twoTextTwo", asciiStringWidgetClass, two->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, two->tuple[1].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); else two->tuple[1].text = WidgetCreate("twoTextTwo", asciiStringWidgetClass, two->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, two->tuple[1].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); XtInstallAllAccelerators(two->tuple[0].text, two->form); XtInstallAllAccelerators(two->tuple[1].text, two->form); three = (Popup_menu *) calloc(1, sizeof(*three)); three->op = unknown; three->tuple = (Popup_tuple *) calloc(3, sizeof(Popup_tuple)); three->numberOftuples = 3; three->popup = XtCreatePopupShell("threetext_popup", overrideShellWidgetClass, quit_command, arg, 2); three->form = WidgetCreate("threeForm", formWidgetClass, three->popup, XtNborderWidth, 0, NULL); OKwg = WidgetCreate("threeOk", commandWidgetClass, three->form, NULL); if (normalFont != NULL) XtSetValues(OKwg,argList, 1); XtAddCallback(OKwg, XtNcallback, popup_OK, &(three->op)); NOTOKwg = WidgetCreate("threeNotok", commandWidgetClass, three->form, NULL); if (normalFont != NULL) XtSetValues(NOTOKwg,argList, 1); XtAddCallback(NOTOKwg, XtNcallback, popup_NOTOK, &(three->op)); three->tuple[0].label = WidgetCreate("threeLabelOne", labelWidgetClass, three->form, XtNlabel, "clear cache on channel", NULL); if (normalFont != NULL) XtSetValues(three->tuple[0].label,argList, 1); three->tuple[0].str = malloc(MAX_EDIT_STRING+1); if (normalFont != NULL) three->tuple[0].text = WidgetCreate("threeTextOne", asciiStringWidgetClass, three->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, three->tuple[0].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else three->tuple[0].text = WidgetCreate("threeTextOne", asciiStringWidgetClass, three->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, three->tuple[0].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNfont, normalFont, XtNlength, MAX_EDIT_STRING, NULL); three->tuple[1].label = WidgetCreate("threeLabelTwo", labelWidgetClass, three->form, XtNlabel, "clear cache on channel", NULL); if (normalFont != NULL) XtSetValues(three->tuple[1].label,argList, 1); three->tuple[1].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) three->tuple[1].text = WidgetCreate("threeTextTwo", asciiStringWidgetClass, three->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, three->tuple[1].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else three->tuple[1].text = WidgetCreate("threeTextTwo", asciiStringWidgetClass, three->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, three->tuple[1].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNfont, normalFont, XtNlength, MAX_EDIT_STRING, NULL); three->tuple[2].label = WidgetCreate("threeLabelThree", labelWidgetClass, three->form, XtNlabel, "clear cache on channel", NULL); if (normalFont != NULL) XtSetValues(three->tuple[2].label,argList, 1); three->tuple[2].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) three->tuple[2].text = WidgetCreate("threeTextThree", asciiStringWidgetClass, three->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, three->tuple[2].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else three->tuple[2].text = WidgetCreate("threeTextThree", asciiStringWidgetClass, three->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, three->tuple[2].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); XtInstallAllAccelerators(three->tuple[0].text, three->form); XtInstallAllAccelerators(three->tuple[1].text, three->form); XtInstallAllAccelerators(three->tuple[2].text, three->form); config = (Popup_menu *) calloc(1, sizeof(*config)); config->op = unknown; config->numberOftuples = 8; config->tuple = (Popup_tuple *) calloc((unsigned)config->numberOftuples, sizeof(Popup_tuple)); config->popup = XtCreatePopupShell("config_popup", overrideShellWidgetClass, config_command, arg, 2); config->form = WidgetCreate("configForm", formWidgetClass, config->popup, NULL); OKwg = WidgetCreate("configOk", commandWidgetClass, config->form, NULL); XtAddCallback(OKwg, XtNcallback, config_OK, NULL); if (normalFont != NULL) XtSetValues(OKwg,argList, 1); NOTOKwg = WidgetCreate("configNotok", commandWidgetClass, config->form, NULL); XtAddCallback(NOTOKwg, XtNcallback, popup_NOTOK, &(config->op)); if (normalFont != NULL) XtSetValues(NOTOKwg,argList, 1); label = WidgetCreate("versionLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(label,argList, 1); version = WidgetCreate("configVersion", labelWidgetClass, config->form, XtNlabel, ppversion, NULL); if (normalFont != NULL) XtSetValues(version,argList, 1); label = WidgetCreate("qmgrVersionLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(label,argList, 1); qversion = WidgetCreate("qmgrVersion", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(qversion,argList, 1); label = WidgetCreate("autoRefreshLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(label,argList, 1); refresh_toggle = WidgetCreate("autoRefreshToggle", commandWidgetClass, config->form, XtNlabel, (autoRefresh == TRUE) ? "enabled" : "disabled", NULL); if (normalFont != NULL) XtSetValues(refresh_toggle,argList, 1); XtAddCallback(refresh_toggle, XtNcallback, configToggle, &newautoRefresh); config->tuple[REFRESH].label = WidgetCreate("refreshIntervalLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(config->tuple[REFRESH].label,argList, 1); config->tuple[REFRESH].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) config->tuple[REFRESH].text = WidgetCreate("refreshIntervalText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[REFRESH].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else config->tuple[REFRESH].text = WidgetCreate("refreshIntervalText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[REFRESH].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); config->tuple[INACTIVE].label = WidgetCreate("inactiveLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(config->tuple[INACTIVE].label,argList, 1); config->tuple[INACTIVE].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) config->tuple[INACTIVE].text = WidgetCreate("inactiveText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[INACTIVE].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else config->tuple[INACTIVE].text = WidgetCreate("inactiveText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[INACTIVE].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); label = WidgetCreate("autoReconnectLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(label,argList, 1); reconnect_toggle = WidgetCreate("autoReconnectToggle", commandWidgetClass, config->form, XtNlabel, (autoReconnect == TRUE) ? "enabled" : "disabled", NULL); if (normalFont != NULL) XtSetValues(reconnect_toggle,argList, 1); XtAddCallback(reconnect_toggle, XtNcallback, configToggle, &newautoReconnect); config->tuple[START].label = WidgetCreate("arStartLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(config->tuple[START].label,argList, 1); config->tuple[START].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) config->tuple[START].text = WidgetCreate("arStartText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[START].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else config->tuple[START].text = WidgetCreate("arStartText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[START].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); label = WidgetCreate("backOffLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(label,argList, 1); backoff_toggle = WidgetCreate("backOffToggle", commandWidgetClass, config->form, XtNlabel, (backoff == TRUE) ? "enabled" : "disabled", NULL); if (normalFont != NULL) XtSetValues(backoff_toggle,argList, 1); XtAddCallback(backoff_toggle, XtNcallback, configToggle, &newbackoff); config->tuple[BACKOFF].label = WidgetCreate("boIncLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(config->tuple[BACKOFF].label,argList, 1); config->tuple[BACKOFF].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) config->tuple[BACKOFF].text = WidgetCreate("boIncText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[BACKOFF].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else config->tuple[BACKOFF].text = WidgetCreate("boIncText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[BACKOFF].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); config->tuple[CONNECTMAX].label = WidgetCreate("maxRCIntLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(config->tuple[CONNECTMAX].label,argList, 1); config->tuple[CONNECTMAX].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) config->tuple[CONNECTMAX].text = WidgetCreate("maxRCIntText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[CONNECTMAX].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else config->tuple[CONNECTMAX].text = WidgetCreate("maxRCIntText", asciiStringWidgetClass, config->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[CONNECTMAX].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); label = WidgetCreate("confPopupLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(label,argList, 1); confirm_toggle = WidgetCreate ("confPopupToggle", commandWidgetClass, config->form, XtNlabel, (confirm == TRUE) ? "enabled" : "disabled", NULL); if (normalFont != NULL) XtSetValues(confirm_toggle,argList, 1); XtAddCallback(confirm_toggle, XtNcallback, configToggle, &newconfirm); label = WidgetCreate ("heurLabel", labelWidgetClass, config->form, NULL); if (normalFont != NULL) XtSetValues(label,argList, 1); switch (heuristic) { case percentage: str = PERCENT_BASED; break; case all: str = ALL_BASED; break; default: heuristic = line; case line: str = LINE_BASED; break; } heur_toggle = WidgetCreate("heurToggle", commandWidgetClass, config->form, XtNlabel, str, NULL); newheur = heuristic; if (normalFont != NULL) XtSetValues(heur_toggle,argList, 1); XtAddCallback(heur_toggle, XtNcallback, heurToggle, &newheur); percent_form = WidgetCreate("percentForm", formWidgetClass, config->form, NULL); config->tuple[PERCENT].label = WidgetCreate ("percentLabel", labelWidgetClass, percent_form, NULL); if (normalFont != NULL) XtSetValues(config->tuple[PERCENT].label,argList, 1); config->tuple[PERCENT].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) config->tuple[PERCENT].text = WidgetCreate("percentText", asciiStringWidgetClass, percent_form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[PERCENT].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else config->tuple[PERCENT].text = WidgetCreate("percentText", asciiStringWidgetClass, percent_form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[PERCENT].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); config->tuple[MINBADMTA].label = WidgetCreate ("numBadMtasLabel", labelWidgetClass, percent_form, NULL); if (normalFont != NULL) XtSetValues(config->tuple[MINBADMTA].label,argList, 1); config->tuple[MINBADMTA].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) config->tuple[MINBADMTA].text = WidgetCreate("numBadMtasText", asciiStringWidgetClass, percent_form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[MINBADMTA].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else config->tuple[MINBADMTA].text = WidgetCreate("numBadMtasText", asciiStringWidgetClass, percent_form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[MINBADMTA].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); line_form = WidgetCreate("lineForm", formWidgetClass, config->form, NULL); config->tuple[LINEMAX].label = WidgetCreate ("lineLabel", labelWidgetClass, line_form, NULL); if (normalFont != NULL) XtSetValues(config->tuple[LINEMAX].label,argList, 1); config->tuple[LINEMAX].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) config->tuple[LINEMAX].text = WidgetCreate("lineText", asciiStringWidgetClass, line_form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[LINEMAX].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else config->tuple[LINEMAX].text = WidgetCreate("lineText", asciiStringWidgetClass, line_form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, config->tuple[LINEMAX].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); switch (heuristic) { case percentage: XtSetMappedWhenManaged (line_form, FALSE); break; case line: XtSetMappedWhenManaged (percent_form, FALSE); break; case all: XtSetMappedWhenManaged (line_form, FALSE); XtSetMappedWhenManaged (percent_form, FALSE); break; } for (i = 0; i < config->numberOftuples; i++) { XtInstallAllAccelerators(config->tuple[i].text, config->form); } connectpopup = (Popup_menu *) calloc(1, sizeof(Popup_menu)); connectpopup->op = connect; connectpopup->tuple = (Popup_tuple *) calloc(4, sizeof(Popup_tuple)); connectpopup->numberOftuples = 4; connectpopup->popup = XtCreatePopupShell("connectpopup", overrideShellWidgetClass, connect_command, arg, 2); connectpopup->form = WidgetCreate("connectForm", formWidgetClass, connectpopup->popup, NULL); OKwg = WidgetCreate("connectOk", commandWidgetClass, connectpopup->form, NULL); XtAddCallback(OKwg, XtNcallback, connectpopup_OK, NULL); if (normalFont != NULL) XtSetValues(OKwg,argList, 1); NOTOKwg = WidgetCreate("connectNotok", commandWidgetClass, connectpopup->form, NULL); if (normalFont != NULL) XtSetValues(NOTOKwg,argList, 1); XtAddCallback(NOTOKwg, XtNcallback, popup_NOTOK, &(connectpopup->op)); connectpopup->tuple[0].label = WidgetCreate("connectToLabel", labelWidgetClass, connectpopup->form, NULL); if (normalFont != NULL) XtSetValues(connectpopup->tuple[0].label,argList, 1); connectpopup->tuple[0].str = malloc(MAX_EDIT_STRING+1); if (normalFont != NULL) connectpopup->tuple[0].text = WidgetCreate("connectToText", asciiStringWidgetClass, connectpopup->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, connectpopup->tuple[0].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); else connectpopup->tuple[0].text = WidgetCreate("connectToText", asciiStringWidgetClass, connectpopup->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, connectpopup->tuple[0].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); connectpopup->tuple[1].label = WidgetCreate("taiFileLabel", labelWidgetClass, connectpopup->form, NULL); if (normalFont != NULL) XtSetValues(connectpopup->tuple[1].label,argList, 1); connectpopup->tuple[1].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) connectpopup->tuple[1].text = WidgetCreate("taiFileText", asciiStringWidgetClass, connectpopup->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, connectpopup->tuple[1].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else connectpopup->tuple[1].text = WidgetCreate("taiFileText", asciiStringWidgetClass, connectpopup->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, connectpopup->tuple[1].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); label = WidgetCreate("authLabel", labelWidgetClass, connectpopup->form, NULL); if (normalFont != NULL) XtSetValues(label,argList, 1); auth_toggle = WidgetCreate("authToggle", commandWidgetClass, connectpopup->form, XtNlabel, (auth == TRUE) ? "enabled" : "disabled", NULL); if (normalFont != NULL) XtSetValues(auth_toggle,argList, 1); XtAddCallback(auth_toggle, XtNcallback, configToggle, &newauth); connectpopup->tuple[2].label = WidgetCreate("userLabel", labelWidgetClass, connectpopup->form, NULL); if (normalFont != NULL) XtSetValues(connectpopup->tuple[2].label,argList, 1); connectpopup->tuple[2].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) connectpopup->tuple[2].text = WidgetCreate("userText", asciiStringWidgetClass, connectpopup->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, connectpopup->tuple[2].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else connectpopup->tuple[2].text = WidgetCreate("userText", asciiStringWidgetClass, connectpopup->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, connectpopup->tuple[2].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); connectpopup->tuple[3].label = WidgetCreate("passwdLabel", labelWidgetClass, connectpopup->form, NULL); if (normalFont != NULL) XtSetValues(connectpopup->tuple[3].label,argList, 1); connectpopup->tuple[3].str = malloc(MAX_EDIT_STRING+1); if (normalFont == NULL) connectpopup->tuple[3].text = WidgetCreate("passwdText", asciiStringWidgetClass, connectpopup->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, connectpopup->tuple[3].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, NULL); else connectpopup->tuple[3].text = WidgetCreate("passwdText", asciiStringWidgetClass, connectpopup->form, #ifdef R4 XtNuseStringInPlace, True, #endif XtNstring, connectpopup->tuple[3].str, XtNtextOptions, (resizeWidth | scrollOnOverflow), XtNlength, MAX_EDIT_STRING, XtNfont, normalFont, NULL); XtOverrideTranslations(connectpopup->tuple[3].text, passwdTranslations); XtInstallAllAccelerators(connectpopup->tuple[0].text, connectpopup->form); XtInstallAllAccelerators(connectpopup->tuple[1].text, connectpopup->form); XtInstallAllAccelerators(connectpopup->tuple[2].text, connectpopup->form); XtInstallAllAccelerators(connectpopup->tuple[3].text, connectpopup->form); } MapVolume(bool) int bool; { XtSetMappedWhenManaged(total_volume_label, bool); XtSetMappedWhenManaged(total_number_label, bool); } MapButtons(bool) int bool; { /* various buttons that need auth */ XtSetMappedWhenManaged(qcontrol_command, bool); XtSetMappedWhenManaged(channel_stop, bool); XtSetMappedWhenManaged(channel_start, bool); XtSetMappedWhenManaged(channel_cacheadd, bool); XtSetMappedWhenManaged(channel_downforce, bool); XtSetMappedWhenManaged(channel_clear, bool); XtSetMappedWhenManaged(mta_stop, bool); XtSetMappedWhenManaged(mta_start, bool); XtSetMappedWhenManaged(mta_cacheadd, bool); XtSetMappedWhenManaged(mta_force, bool); XtSetMappedWhenManaged(mta_downforce, bool); XtSetMappedWhenManaged(mta_clear, bool); XtSetMappedWhenManaged(msg_stop, bool); XtSetMappedWhenManaged(msg_start, bool); XtSetMappedWhenManaged(msg_cacheadd, bool); XtSetMappedWhenManaged(msg_force, bool); XtSetMappedWhenManaged(msg_clear, bool); }