Initial import of the CDE 2.1.30 sources from the Open Group.
This commit is contained in:
683
cde/lib/DtTerm/TermView/TermViewTerminalDialog.c
Normal file
683
cde/lib/DtTerm/TermView/TermViewTerminalDialog.c
Normal file
@@ -0,0 +1,683 @@
|
||||
#ifndef lint
|
||||
#ifdef VERBOSE_REV_INFO
|
||||
static char rcs_id[] = "$XConsortium: TermViewTerminalDialog.c /main/2 1996/08/28 16:50:55 drk $";
|
||||
#endif /* VERBOSE_REV_INFO */
|
||||
#endif /* lint */
|
||||
|
||||
/* *
|
||||
* (c) Copyright 1993, 1994 Hewlett-Packard Company *
|
||||
* (c) Copyright 1993, 1994 International Business Machines Corp. *
|
||||
* (c) Copyright 1993, 1994 Sun Microsystems, Inc. *
|
||||
* (c) Copyright 1993, 1994 Novell, Inc. *
|
||||
*/
|
||||
|
||||
#include "TermHeader.h"
|
||||
#include "Term.h"
|
||||
#include <string.h> /* for strdup */
|
||||
#include <errno.h> /* for errno and sys_errlist[] */
|
||||
|
||||
#include <Xm/Xm.h>
|
||||
#include <Xm/DialogS.h>
|
||||
#include <Xm/MessageB.h>
|
||||
#include <Xm/Form.h>
|
||||
#include <Xm/Frame.h>
|
||||
#include <Xm/RowColumn.h>
|
||||
#include <Xm/TextF.h>
|
||||
#include <Xm/LabelG.h>
|
||||
#include <Xm/SeparatoG.h>
|
||||
#include <Xm/PushBG.h>
|
||||
#include <X11/keysym.h>
|
||||
#include <Xm/MwmUtil.h>
|
||||
#include "TermViewGlobalDialog.h"
|
||||
#include "TermViewTerminalDialog.h"
|
||||
#include "TermViewMenu.h"
|
||||
#include "TermViewP.h"
|
||||
#include "TermFunction.h"
|
||||
#include "TermPrimFunction.h"
|
||||
#include "TermPrimMessageCatI.h"
|
||||
|
||||
static void HelpTerminalOptionsCallback(Widget w, XtPointer client_data,
|
||||
XtPointer call_data);
|
||||
|
||||
|
||||
typedef struct _TerminalOptionsDialogType {
|
||||
Widget dtterm;
|
||||
Widget shell;
|
||||
Widget dialog;
|
||||
Widget form;
|
||||
struct
|
||||
{
|
||||
struct
|
||||
{
|
||||
Widget normal;
|
||||
Widget application;
|
||||
Widget option;
|
||||
} cursor_key_mode;
|
||||
struct
|
||||
{
|
||||
Widget numeric;
|
||||
Widget application;
|
||||
Widget option;
|
||||
} keypad_mode;
|
||||
struct
|
||||
{
|
||||
Widget cr_return;
|
||||
Widget return_lf;
|
||||
Widget option;
|
||||
} newline_sequence;
|
||||
struct
|
||||
{
|
||||
Widget locked;
|
||||
Widget unlocked;
|
||||
Widget option;
|
||||
} key_lock;
|
||||
} keyboard_control;
|
||||
struct
|
||||
{
|
||||
struct
|
||||
{
|
||||
Widget enabled;
|
||||
Widget disabled;
|
||||
Widget option;
|
||||
} columns;
|
||||
struct
|
||||
{
|
||||
Widget enabled;
|
||||
Widget disabled;
|
||||
Widget option;
|
||||
} autowrap;
|
||||
struct
|
||||
{
|
||||
Widget enabled;
|
||||
Widget disabled;
|
||||
Widget option;
|
||||
} reversewrap;
|
||||
} screen_control;
|
||||
} TerminalOptionsDialogType;
|
||||
|
||||
static void
|
||||
UpdateTerminalOptionsDialog
|
||||
(
|
||||
TerminalOptionsDialogType *options
|
||||
)
|
||||
{
|
||||
Boolean cursorMode;
|
||||
Boolean keypadMode;
|
||||
Boolean autoWrap;
|
||||
Boolean reverseWrap;
|
||||
Boolean c132;
|
||||
Boolean lockState;
|
||||
Boolean autoLineFeed;
|
||||
Arg al[20];
|
||||
int ac;
|
||||
|
||||
/* get the current widget values... */
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], DtNappCursorDefault, &cursorMode); ac++;
|
||||
(void) XtSetArg(al[ac], DtNappKeypadDefault, &keypadMode); ac++;
|
||||
(void) XtSetArg(al[ac], DtNautoWrap, &autoWrap); ac++;
|
||||
(void) XtSetArg(al[ac], DtNreverseWrap, &reverseWrap); ac++;
|
||||
(void) XtSetArg(al[ac], DtNc132, &c132); ac++;
|
||||
(void) XtGetValues(options->dtterm, al, ac);
|
||||
lockState = _DtTermGetUserKeyLock(options->dtterm);
|
||||
autoLineFeed = _DtTermGetAutoLineFeed(options->dtterm);
|
||||
|
||||
/* set the cursor mode... */
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNmenuHistory,
|
||||
(cursorMode) ?
|
||||
options->keyboard_control.cursor_key_mode.application :
|
||||
options->keyboard_control.cursor_key_mode.normal); ac++;
|
||||
(void) XtSetValues(options->keyboard_control.cursor_key_mode.option, al, ac);
|
||||
|
||||
/* set the cursor mode... */
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNmenuHistory,
|
||||
(keypadMode) ?
|
||||
options->keyboard_control.keypad_mode.application :
|
||||
options->keyboard_control.keypad_mode.numeric); ac++;
|
||||
(void) XtSetValues(options->keyboard_control.keypad_mode.option, al, ac);
|
||||
/* set the lock mode... */
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNmenuHistory,
|
||||
(lockState) ?
|
||||
options->keyboard_control.key_lock.locked :
|
||||
options->keyboard_control.key_lock.unlocked); ac++;
|
||||
(void) XtSetValues(options->keyboard_control.key_lock.option, al, ac);
|
||||
|
||||
/* set the auto line feed mode... */
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNmenuHistory,
|
||||
(autoLineFeed) ?
|
||||
options->keyboard_control.newline_sequence.return_lf :
|
||||
options->keyboard_control.newline_sequence.cr_return); ac++;
|
||||
(void) XtSetValues(options->keyboard_control.newline_sequence.option, al, ac);
|
||||
|
||||
/* set the 132 mode... */
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNmenuHistory,
|
||||
(c132) ?
|
||||
options->screen_control.columns.enabled :
|
||||
options->screen_control.columns.disabled); ac++;
|
||||
(void) XtSetValues(options->screen_control.columns.option, al, ac);
|
||||
|
||||
/* set the auto wrap mode... */
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNmenuHistory,
|
||||
(autoWrap) ?
|
||||
options->screen_control.autowrap.enabled :
|
||||
options->screen_control.autowrap.disabled); ac++;
|
||||
(void) XtSetValues(options->screen_control.autowrap.option, al, ac);
|
||||
/* set the reverse wrap mode... */
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNmenuHistory,
|
||||
(reverseWrap) ?
|
||||
options->screen_control.reversewrap.enabled :
|
||||
options->screen_control.reversewrap.disabled); ac++;
|
||||
(void) XtSetValues(options->screen_control.reversewrap.option, al, ac);
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
ApplyTerminalOptionsDialogCallback
|
||||
(
|
||||
Widget w,
|
||||
XtPointer clientData,
|
||||
XtPointer callData
|
||||
)
|
||||
{
|
||||
TerminalOptionsDialogType *options = (TerminalOptionsDialogType *) clientData;
|
||||
Widget menuHistory;
|
||||
Arg al[20];
|
||||
int ac;
|
||||
Arg al2;
|
||||
char *c1;
|
||||
int i1;
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al2, XmNmenuHistory, &menuHistory);
|
||||
(void) XtGetValues(options->keyboard_control.cursor_key_mode.option, &al2, 1);
|
||||
(void) XtSetArg(al[ac], DtNappCursorDefault,
|
||||
(menuHistory == options->keyboard_control.cursor_key_mode.application) ?
|
||||
TRUE : FALSE); ac++;
|
||||
|
||||
(void) XtSetArg(al2, XmNmenuHistory, &menuHistory);
|
||||
(void) XtGetValues(options->keyboard_control.keypad_mode.option, &al2, 1);
|
||||
(void) XtSetArg(al[ac], DtNappKeypadDefault,
|
||||
(menuHistory == options->keyboard_control.keypad_mode.application) ?
|
||||
TRUE : FALSE); ac++;
|
||||
|
||||
/* set the lock mode... */
|
||||
(void) XtSetArg(al2, XmNmenuHistory, &menuHistory);
|
||||
(void) XtGetValues(options->keyboard_control.key_lock.option, &al2, 1);
|
||||
_DtTermSetUserKeyLock(options->dtterm, (menuHistory == options->keyboard_control.key_lock.locked));
|
||||
|
||||
/* set the auto line feed mode... */
|
||||
(void) XtSetArg(al2, XmNmenuHistory, &menuHistory);
|
||||
(void) XtGetValues(options->keyboard_control.newline_sequence.option, &al2, 1);
|
||||
_DtTermSetAutoLineFeed(options->dtterm,
|
||||
(menuHistory == options->keyboard_control.newline_sequence.return_lf));
|
||||
|
||||
|
||||
(void) XtSetArg(al2, XmNmenuHistory, &menuHistory);
|
||||
(void) XtGetValues(options->screen_control.columns.option, &al2, 1);
|
||||
(void) XtSetArg(al[ac], DtNc132,
|
||||
(menuHistory == options->screen_control.columns.enabled) ?
|
||||
TRUE : FALSE); ac++;
|
||||
|
||||
(void) XtSetArg(al2, XmNmenuHistory, &menuHistory);
|
||||
(void) XtGetValues(options->screen_control.autowrap.option, &al2, 1);
|
||||
(void) XtSetArg(al[ac], DtNautoWrap,
|
||||
(menuHistory == options->screen_control.autowrap.enabled) ?
|
||||
TRUE : FALSE); ac++;
|
||||
|
||||
(void) XtSetArg(al2, XmNmenuHistory, &menuHistory);
|
||||
(void) XtGetValues(options->screen_control.reversewrap.option, &al2, 1);
|
||||
(void) XtSetArg(al[ac], DtNreverseWrap,
|
||||
(menuHistory == options->screen_control.reversewrap.enabled) ?
|
||||
TRUE : FALSE); ac++;
|
||||
|
||||
if (ac > 0) {
|
||||
(void) XtSetValues(options->dtterm, al, ac);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
OkTerminalOptionsDialogCallback
|
||||
(
|
||||
Widget w,
|
||||
XtPointer clientData,
|
||||
XtPointer callData
|
||||
)
|
||||
{
|
||||
TerminalOptionsDialogType *options = (TerminalOptionsDialogType *) clientData;
|
||||
|
||||
/* apply the options... */
|
||||
(void) ApplyTerminalOptionsDialogCallback(w, clientData, callData);
|
||||
/* unmap the dialog... */
|
||||
(void) XtUnmanageChild(options->dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
CancelTerminalOptionsDialogCallback
|
||||
(
|
||||
Widget w,
|
||||
XtPointer clientData,
|
||||
XtPointer callData
|
||||
)
|
||||
{
|
||||
TerminalOptionsDialogType *options = (TerminalOptionsDialogType *) clientData;
|
||||
|
||||
/* unmap the dialog... */
|
||||
(void) XtUnmanageChild(options->dialog);
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
HelpTerminalOptionsCallback(Widget w, XtPointer client_data, XtPointer call_data)
|
||||
{
|
||||
DtTermViewWidget tw = (DtTermViewWidget)client_data;
|
||||
(void) _DtTermViewMapHelp((Widget )tw, "Terminal", "TermOpts");
|
||||
}
|
||||
|
||||
static void
|
||||
MapTerminalOptionsDialogCallback
|
||||
(
|
||||
Widget w,
|
||||
XtPointer clientData,
|
||||
XtPointer callData
|
||||
)
|
||||
{
|
||||
TerminalOptionsDialogType *options = (TerminalOptionsDialogType *) clientData;
|
||||
|
||||
(void) UpdateTerminalOptionsDialog(options);
|
||||
}
|
||||
|
||||
Widget
|
||||
_DtTermViewCreateTerminalOptionsDialog
|
||||
(
|
||||
Widget parent
|
||||
)
|
||||
{
|
||||
TerminalOptionsDialogType *options;
|
||||
Widget KbdControlFrame;
|
||||
Widget KbdControlForm;
|
||||
Widget ScreenControlFrame;
|
||||
Widget ScreenControlForm;
|
||||
Widget LoggingFrame;
|
||||
Widget LoggingForm;
|
||||
Widget label;
|
||||
Widget pulldown;
|
||||
Widget tmp;
|
||||
Widget separator;
|
||||
Widget button;
|
||||
Widget cancel;
|
||||
Widget reset;
|
||||
XmString string;
|
||||
XmString resetString;
|
||||
XmString helpString;
|
||||
XmString okString;
|
||||
XmString cancelString;
|
||||
Arg al[20];
|
||||
int ac;
|
||||
_DtTermViewLineupList *lineupList;
|
||||
DtTermViewWidget tw = (DtTermViewWidget) parent;
|
||||
|
||||
options = (TerminalOptionsDialogType *) XtMalloc(sizeof(TerminalOptionsDialogType));
|
||||
(void) memset(options, '\0', sizeof(*options));
|
||||
|
||||
options->dtterm = tw->termview.term;
|
||||
|
||||
ac = 0;
|
||||
string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewTerminalDialog,26, "Terminal - Terminal Options")));
|
||||
okString = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewTerminalDialog,2, "OK")));
|
||||
cancelString = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewTerminalDialog,3, "Cancel")));
|
||||
helpString = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewTerminalDialog,4, "Help")));
|
||||
resetString = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewTerminalDialog,25, "Reset")));
|
||||
(void) XtSetArg(al[ac], XmNdialogTitle, string); ac++;
|
||||
(void) XtSetArg(al[ac], XmNokLabelString, okString); ac++;
|
||||
(void) XtSetArg(al[ac], XmNcancelLabelString, cancelString); ac++;
|
||||
(void) XtSetArg(al[ac], XmNhelpLabelString, helpString); ac++;
|
||||
(void) XtSetArg(al[ac], XmNautoUnmanage, False); ac++;
|
||||
options->dialog = XmCreateTemplateDialog(parent, "terminal", al, ac);
|
||||
(void) XmStringFree(okString);
|
||||
(void) XmStringFree(cancelString);
|
||||
(void) XmStringFree(helpString);
|
||||
(void) XtSetArg(al[0], XmNlabelString, resetString);
|
||||
reset = XmCreatePushButtonGadget(options->dialog, "ResetButton", al, 1);
|
||||
XtManageChild(reset);
|
||||
(void) XmStringFree(resetString);
|
||||
(void) XtAddCallback(reset, XmNactivateCallback,
|
||||
MapTerminalOptionsDialogCallback, (XtPointer) options);
|
||||
|
||||
(void) XtAddCallback(options->dialog, XmNokCallback,
|
||||
OkTerminalOptionsDialogCallback, (XtPointer) options);
|
||||
(void) XtAddCallback(options->dialog, XmNcancelCallback,
|
||||
CancelTerminalOptionsDialogCallback, (XtPointer) options);
|
||||
(void) XtAddCallback(options->dialog, XmNmapCallback,
|
||||
MapTerminalOptionsDialogCallback, (XtPointer) options);
|
||||
(void) XtAddCallback(options->dialog, XmNhelpCallback,
|
||||
HelpTerminalOptionsCallback, (XtPointer) tw);
|
||||
|
||||
options->shell = XtParent(options->dialog);
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNallowShellResize, False); ac++;
|
||||
(void) XtSetValues(options->shell, al, ac);
|
||||
|
||||
ac = 0;
|
||||
options->form = XmCreateForm(options->dialog, "form", al, ac);
|
||||
(void) XtManageChild(options->form);
|
||||
|
||||
/****************
|
||||
*
|
||||
* Keyboard Control modes - cursor keys, keypad, newline and fn lock
|
||||
*
|
||||
****************/
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNmarginWidth, 5); ac++;
|
||||
(void) XtSetArg(al[ac], XmNmarginHeight, 5); ac++;
|
||||
KbdControlFrame = XmCreateFrame(options->form, "KbdControlFrame", al, ac);
|
||||
(void) XtManageChild(KbdControlFrame);
|
||||
|
||||
ac = 0;
|
||||
string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewTerminalDialog,5, "Keyboard Control")));
|
||||
(void) XtSetArg(al[ac], XmNlabelString, string); ac++;
|
||||
(void) XtSetArg(al[ac], XmNchildType, XmFRAME_TITLE_CHILD); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtraversalOn, False); ac++;
|
||||
label = XmCreateLabelGadget(KbdControlFrame, "KbdControlFrameLabel", al, ac);
|
||||
(void) XmStringFree(string);
|
||||
(void) XtManageChild(label);
|
||||
|
||||
ac = 0;
|
||||
KbdControlForm = XmCreateForm(KbdControlFrame, "KbdControlForm", al, ac);
|
||||
|
||||
/*
|
||||
* option menu: Cursor Key Mode [normal|application]
|
||||
*/
|
||||
pulldown =
|
||||
_DtTermViewCreatePulldown(KbdControlForm, "cursorKeyPulldown");
|
||||
#ifdef CALLBACKS
|
||||
(void) XtAddCallback(pulldown, XmNentryCallback,
|
||||
CursorKeyModeCallback, (XtPointer) options);
|
||||
#endif
|
||||
options->keyboard_control.cursor_key_mode.normal =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,6, "Normal")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
options->keyboard_control.cursor_key_mode.application =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,7, "Application")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
|
||||
tmp = _DtTermViewCreateOptionMenu(KbdControlForm, pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,8, "Cursor Key Mode ")), NoSymbol, al, ac);
|
||||
options->keyboard_control.cursor_key_mode.option = tmp;
|
||||
|
||||
/* add to the lineup list... */
|
||||
lineupList = _DtTermViewLineupListCreate();
|
||||
(void) _DtTermViewLineupListAddItem(lineupList,
|
||||
XmOptionLabelGadget(options->keyboard_control.cursor_key_mode.option),
|
||||
options->keyboard_control.cursor_key_mode.option,
|
||||
CORRECTION_OPTION_MENU);
|
||||
|
||||
/****************************************************************
|
||||
* option menu: Keypad Mode [Numeric | Application]
|
||||
*/
|
||||
pulldown =
|
||||
_DtTermViewCreatePulldown(KbdControlForm, "keypadModePulldown");
|
||||
#ifdef CALLBACKS
|
||||
(void) XtAddCallback(pulldown, XmNentryCallback,
|
||||
KeyPadModeCallback, (XtPointer) options);
|
||||
#endif
|
||||
options->keyboard_control.keypad_mode.numeric =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,9, "Numeric")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
options->keyboard_control.keypad_mode.application =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,10, "Application")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++;
|
||||
(void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
|
||||
tmp = _DtTermViewCreateOptionMenu(KbdControlForm, pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,11, "Keypad Mode ")), NoSymbol, al, ac);
|
||||
options->keyboard_control.keypad_mode.option = tmp;
|
||||
|
||||
/* add to the lineup list... */
|
||||
(void) _DtTermViewLineupListAddItem(lineupList,
|
||||
XmOptionLabelGadget(options->keyboard_control.keypad_mode.option),
|
||||
options->keyboard_control.keypad_mode.option,
|
||||
CORRECTION_OPTION_MENU);
|
||||
|
||||
/****************************************************************
|
||||
* option menu: Newline Sequence: [CR | CRLF]
|
||||
*/
|
||||
pulldown =
|
||||
_DtTermViewCreatePulldown(KbdControlForm, "NewlineSeqPulldown");
|
||||
#ifdef CALLBACKS
|
||||
(void) XtAddCallback(pulldown, XmNentryCallback,
|
||||
NewlineSequenceCallback, (XtPointer) options);
|
||||
#endif
|
||||
options->keyboard_control.newline_sequence.cr_return =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,12, "Return Only")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
options->keyboard_control.newline_sequence.return_lf =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,13, "Return/Line Feed")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++;
|
||||
(void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
|
||||
tmp = _DtTermViewCreateOptionMenu(KbdControlForm, pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,14, "Newline Sequence ")), NoSymbol, al, ac);
|
||||
options->keyboard_control.newline_sequence.option = tmp;
|
||||
|
||||
/* add to the lineup list... */
|
||||
(void) _DtTermViewLineupListAddItem(lineupList,
|
||||
XmOptionLabelGadget(options->keyboard_control.newline_sequence.option),
|
||||
options->keyboard_control.newline_sequence.option,
|
||||
CORRECTION_OPTION_MENU);
|
||||
|
||||
/****************************************************************
|
||||
* option menu: Key Lock: [Enabled | Disabled]
|
||||
*/
|
||||
pulldown =
|
||||
_DtTermViewCreatePulldown(KbdControlForm, "KeyLockPulldown");
|
||||
#ifdef CALLBACKS
|
||||
(void) XtAddCallback(pulldown, XmNentryCallback,
|
||||
FunctionKeyLockCallback, (XtPointer) options);
|
||||
#endif
|
||||
options->keyboard_control.key_lock.locked =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,15, "Locked")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
options->keyboard_control.key_lock.unlocked =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,16, "Unlocked")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++;
|
||||
(void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
|
||||
tmp = _DtTermViewCreateOptionMenu(KbdControlForm, pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,17, "User Function Keys ")), NoSymbol, al, ac);
|
||||
options->keyboard_control.key_lock.option = tmp;
|
||||
|
||||
/* add to the lineup list... */
|
||||
(void) _DtTermViewLineupListAddItem(lineupList,
|
||||
XmOptionLabelGadget(options->keyboard_control.key_lock.option),
|
||||
options->keyboard_control.key_lock.option,
|
||||
CORRECTION_OPTION_MENU);
|
||||
|
||||
|
||||
/* manage the cursor form... */
|
||||
(void) XtManageChild(KbdControlForm);
|
||||
|
||||
/****************
|
||||
*
|
||||
* Screen Control modes - 132, autowrap, reversewrap
|
||||
*
|
||||
****************/
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtopWidget, KbdControlFrame); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtopOffset, 5); ac++;
|
||||
(void) XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNmarginWidth, 5); ac++;
|
||||
(void) XtSetArg(al[ac], XmNmarginHeight, 5); ac++;
|
||||
ScreenControlFrame = XmCreateFrame(options->form, "ScreenControlFrame",
|
||||
al, ac);
|
||||
(void) XtManageChild(ScreenControlFrame);
|
||||
|
||||
ac = 0;
|
||||
string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewTerminalDialog,18, "Screen Control")));
|
||||
(void) XtSetArg(al[ac], XmNlabelString, string); ac++;
|
||||
(void) XtSetArg(al[ac], XmNchildType, XmFRAME_TITLE_CHILD); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtraversalOn, False); ac++;
|
||||
label = XmCreateLabelGadget(ScreenControlFrame, "ScreenControlFrameLabel",
|
||||
al, ac);
|
||||
(void) XmStringFree(string);
|
||||
(void) XtManageChild(label);
|
||||
|
||||
ac = 0;
|
||||
ScreenControlForm = XmCreateForm(ScreenControlFrame, "ScreenControlForm", al, ac);
|
||||
|
||||
/*
|
||||
* option menu: 132 column mode: [enabled | disabled]
|
||||
*/
|
||||
|
||||
pulldown =
|
||||
_DtTermViewCreatePulldown(ScreenControlForm, "one32Pulldown");
|
||||
#ifdef CALLBACKS
|
||||
(void) XtAddCallback(pulldown, XmNentryCallback,
|
||||
ColumnSwitchCallback, (XtPointer) options);
|
||||
#endif
|
||||
options->screen_control.columns.enabled =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,19, "Enabled")), NoSymbol,
|
||||
NULL, NULL, NULL, NULL);
|
||||
options->screen_control.columns.disabled =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,20, "Disabled")), NoSymbol,
|
||||
NULL, NULL, NULL, NULL);
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
|
||||
tmp = _DtTermViewCreateOptionMenu(ScreenControlForm, pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,21, "132 Column Switching")), NoSymbol, al, ac);
|
||||
options->screen_control.columns.option = tmp;
|
||||
|
||||
/* add to the lineup list... */
|
||||
(void) _DtTermViewLineupListAddItem(lineupList,
|
||||
XmOptionLabelGadget(options->screen_control.columns.option),
|
||||
options->screen_control.columns.option,
|
||||
CORRECTION_OPTION_MENU);
|
||||
|
||||
/****************************************************************
|
||||
* option menu: Autowrap: [enabled|disabled]
|
||||
*/
|
||||
pulldown =
|
||||
_DtTermViewCreatePulldown(ScreenControlForm, "AutoWrapPulldown");
|
||||
#ifdef CALLBACKS
|
||||
(void) XtAddCallback(pulldown, XmNentryCallback,
|
||||
AutoWrapCallback, (XtPointer) options);
|
||||
#endif
|
||||
options->screen_control.autowrap.enabled =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,19, "Enabled")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
options->screen_control.autowrap.disabled =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,20, "Disabled")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++;
|
||||
(void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
|
||||
tmp = _DtTermViewCreateOptionMenu(ScreenControlForm, pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,22, "End-of-line Wrapping ")), NoSymbol, al, ac);
|
||||
options->screen_control.autowrap.option = tmp;
|
||||
|
||||
/* add to the lineup list... */
|
||||
(void) _DtTermViewLineupListAddItem(lineupList,
|
||||
XmOptionLabelGadget(options->screen_control.autowrap.option),
|
||||
options->screen_control.autowrap.option,
|
||||
CORRECTION_OPTION_MENU);
|
||||
|
||||
/****************************************************************
|
||||
* option menu: Reverse wrap: [enabled|disabled]
|
||||
*/
|
||||
pulldown =
|
||||
_DtTermViewCreatePulldown(ScreenControlForm, "reverseWrapPulldown");
|
||||
#ifdef CALLBACKS
|
||||
(void) XtAddCallback(pulldown, XmNentryCallback,
|
||||
ReverseWrapCallback, (XtPointer) options);
|
||||
#endif
|
||||
options->screen_control.reversewrap.enabled =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,19, "Enabled")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
options->screen_control.reversewrap.disabled =
|
||||
_DtTermViewCreatePushButton(pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,20, "Disabled")), NoSymbol, NULL, NULL, NULL, NULL);
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
|
||||
(void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++;
|
||||
(void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
|
||||
(void) XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
|
||||
tmp = _DtTermViewCreateOptionMenu(ScreenControlForm, pulldown,
|
||||
(GETMESSAGE(NL_SETN_ViewTerminalDialog,23, "Reverse End-of-line Wrapping ")), NoSymbol, al, ac);
|
||||
options->screen_control.reversewrap.option = tmp;
|
||||
|
||||
/* add to the lineup list... */
|
||||
(void) _DtTermViewLineupListAddItem(lineupList,
|
||||
XmOptionLabelGadget(options->screen_control.reversewrap.option),
|
||||
options->screen_control.reversewrap.option,
|
||||
CORRECTION_OPTION_MENU);
|
||||
|
||||
/* manage the cursor form... */
|
||||
(void) XtManageChild(ScreenControlForm);
|
||||
|
||||
/* lineup all the labels... */
|
||||
(void) _DtTermViewLineupListLineup(lineupList);
|
||||
(void) _DtTermViewLineupListFree(lineupList);
|
||||
lineupList = (_DtTermViewLineupList *) 0;
|
||||
|
||||
|
||||
/* create the apply button... */
|
||||
ac = 0;
|
||||
string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewTerminalDialog,24, "Apply")));
|
||||
(void) XtSetArg(al[ac], XmNlabelString, string); ac++;
|
||||
button = XmCreatePushButtonGadget(options->dialog, "apply", al, ac);
|
||||
(void) XmStringFree(string);
|
||||
(void) XtAddCallback(button, XmNactivateCallback,
|
||||
ApplyTerminalOptionsDialogCallback, (XtPointer) options);
|
||||
(void) XtManageChild(button);
|
||||
|
||||
ac = 0;
|
||||
(void) XtSetArg(al[ac], XmNmwmFunctions, MWM_FUNC_MOVE); ac++;
|
||||
(void) XtSetArg(al[ac], XmNmwmDecorations,
|
||||
MWM_DECOR_MENU | MWM_DECOR_BORDER | MWM_DECOR_TITLE); ac++;
|
||||
(void) XtSetValues(options->shell, al, ac);
|
||||
|
||||
(void) XtManageChild(options->dialog);
|
||||
|
||||
|
||||
return(options->dialog);
|
||||
}
|
||||
Reference in New Issue
Block a user