/* * @OPENGROUP_COPYRIGHT@ * COPYRIGHT NOTICE * Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc. * Copyright (c) 1996, 1997, 1998, 1999, 2000 The Open Group * ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for * the full copyright text. * * This software is subject to an open license. It may only be * used on, with or for operating systems which are themselves open * source systems. You must contact The Open Group for a license * allowing distribution and sublicensing of this software on, with, * or for operating systems which are not Open Source programs. * * See http://www.opengroup.org/openmotif/license for full * details of the license agreement. Any use, reproduction, or * distribution of the program constitutes recipient's acceptance of * this agreement. * * EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS * PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY * WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY * OR FITNESS FOR A PARTICULAR PURPOSE * * EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT * NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE * EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. */ /* * HISTORY */ #ifdef REV_INFO #ifndef lint static char rcsid[] = "$XConsortium: RowCol3.c /main/10 1995/07/13 18:55:07 drk $" #endif #endif /* * (c) Copyright 1987, 1988, 1989 HEWLETT-PACKARD COMPANY */ #include #define NUM_LEGAL_CHILDREN 17 #define NUM_LEGAL_PARENTS 5 #define MAX_CHILDREN 25 #if XmVERSION < 2 #define XmSET 1 #endif Widget RC, parent, child[MAX_CHILDREN]; Widget Popup; WidgetClass parent_class; int parent_index; Arg args[15]; int n; int num_children = 0; char *text_value = NULL; typedef struct { char *string; WidgetClass class; } StringClassPair; static StringClassPair parent_table[] = { { "xmBulletinBoardWidgetClass", (WidgetClass) NULL }, { "xmDrawingAreaWidgetClass", (WidgetClass) NULL }, { "xmFrameWidgetClass", (WidgetClass) NULL }, { "xmMainWindowWidgetClass", (WidgetClass) NULL }, { "xmFormWidgetClass", (WidgetClass) NULL } }; static StringClassPair child_table[] = { { "xmScaleWidgetClass", (WidgetClass) NULL }, { "xmScrollBarWidgetClass", (WidgetClass) NULL }, { "xmCommandWidgetClass", (WidgetClass) NULL }, { "xmArrowButtonWidgetClass", (WidgetClass) NULL }, { "xmListWidgetClass", (WidgetClass) NULL }, { "xmSeparatorWidgetClass", (WidgetClass) NULL }, { "xmTextWidgetClass", (WidgetClass) NULL }, { "xmTextFieldWidgetClass", (WidgetClass) NULL }, { "xmLabelWidgetClass", (WidgetClass) NULL }, { "xmDrawnButtonWidgetClass", (WidgetClass) NULL }, { "xmPushButtonWidgetClass", (WidgetClass) NULL }, { "xmToggleButtonWidgetClass", (WidgetClass) NULL }, { "xmArrowButtonGadgetClass", (WidgetClass) NULL }, { "xmSeparatorGadgetClass", (WidgetClass) NULL }, { "xmLabelGadgetClass", (WidgetClass) NULL }, { "xmPushButtonGadgetClass", (WidgetClass) NULL }, { "xmToggleButtonGadgetClass", (WidgetClass) NULL } }; WidgetClass ParentClass(char *parent_class_name); void CreateControlPanel(void); void InitializeClassLookupTables(void); static void CreateParent(WidgetClass parent_class); static void CreateChild(char *name); /* CALLBACKS TO UPDATE THE CONTROL PANEL */ static void updateNumColumns(Widget w, XtPointer closure, XtPointer data) { XmScaleCallbackStruct *call_data=(XmScaleCallbackStruct *)data; XtSetArg(args[0], XmNnumColumns, call_data->value); XtSetValues(RC, args, 1); return; } static void updateSpacing(Widget w, XtPointer closure, XtPointer data) { XmScaleCallbackStruct *call_data=(XmScaleCallbackStruct *)data; XtSetArg(args[0], XmNspacing, call_data->value); XtSetValues(RC, args, 1); return; } static void updateWidth(Widget w, XtPointer closure, XtPointer data) { XmScaleCallbackStruct *call_data=(XmScaleCallbackStruct *)data; XtSetArg(args[0], XmNmarginWidth, call_data->value); XtSetValues(RC, args, 1); return; } static void updateHeight(Widget w, XtPointer closure, XtPointer data) { XmScaleCallbackStruct *call_data=(XmScaleCallbackStruct *)data; XtSetArg(args[0], XmNmarginHeight, call_data->value); XtSetValues(RC, args, 1); return; } static void updateEntryBorder(Widget w, XtPointer closure, XtPointer data) { XmScaleCallbackStruct *call_data=(XmScaleCallbackStruct *)data; XtSetArg(args[0], XmNentryBorder, call_data->value); XtSetValues(RC, args, 1); return; } static void updateAdjustLast(Widget w, XtPointer adjustLast, XtPointer data) { XmToggleButtonCallbackStruct *call_data=(XmToggleButtonCallbackStruct *)data; XtSetArg(args[0], XmNadjustLast, call_data->set); XtSetValues(RC, args, 1); return; } static void updateAdjustMargin(Widget w, XtPointer adjustMargin, XtPointer data) { XmToggleButtonCallbackStruct *call_data=(XmToggleButtonCallbackStruct *)data; XtSetArg(args[0], XmNadjustMargin, call_data->set); XtSetValues(RC, args, 1); return; } static void updateIsAligned(Widget w, XtPointer isAligned, XtPointer data) { XmToggleButtonCallbackStruct *call_data=(XmToggleButtonCallbackStruct *)data; XtSetArg(args[0], XmNisAligned, call_data->set); XtSetValues(RC, args, 1); return; } static void updateResizeHeight(Widget w, XtPointer resizeHeight, XtPointer data) { XmToggleButtonCallbackStruct *call_data=(XmToggleButtonCallbackStruct *)data; XtSetArg(args[0], XmNresizeHeight, call_data->set); XtSetValues(RC, args, 1); return; } static void updateResizeWidth(Widget w, XtPointer resizeWidth, XtPointer data) { XmToggleButtonCallbackStruct *call_data=(XmToggleButtonCallbackStruct *)data; XtSetArg(args[0], XmNresizeWidth, call_data->set); XtSetValues(RC, args, 1); return; } static void updateOrientation(Widget w, XtPointer orientation, XtPointer data) { XmToggleButtonCallbackStruct *call_data=(XmToggleButtonCallbackStruct *)data; if ( call_data->set == XmSET ) { XtSetArg(args[0], XmNorientation, orientation); XtSetValues(RC, args, 1); } return; } static void updateAlignment(Widget w, XtPointer alignment, XtPointer data) { XmToggleButtonCallbackStruct *call_data=(XmToggleButtonCallbackStruct *)data; XtSetArg(args[0], XmNentryAlignment, alignment); XtSetValues(RC, args, 1); return; } static void updateChildren(Widget w, XtPointer closure, XtPointer data) { XmScaleCallbackStruct *call_data=(XmScaleCallbackStruct *)data; register int i, temp; temp = num_children; if (call_data->value < num_children) { /* Destroy extra children */ for (i = temp - 1; i >= call_data->value; i--) { XtDestroyWidget(child[i]); num_children--; } } else if (call_data->value > num_children) { /* Add more children */ for (i = num_children; i < call_data->value; i++) CreateChild(text_value); } return; } static void print_width_height(Widget w, XtPointer closure, XtPointer call_data) { Dimension my_width, my_height; XtSetArg(args[0], XmNwidth, &my_width); XtSetArg(args[1], XmNheight, &my_height); XtGetValues(w, args, 2); printf("My width = %d, my height = %d\n", my_width, my_height); } static void updatePacking(Widget w, XtPointer packtype, XtPointer data) { XmToggleButtonCallbackStruct *call_data=(XmToggleButtonCallbackStruct *)data; register int n; if (call_data->set) { n = 0; XtSetArg(args[n], XmNpacking, packtype); n++; XtSetValues(RC, args, n); } } static void updateRCwidth(Widget w, XtPointer closure, XtPointer call_data) { int rc_width; char *value = NULL; value = XmTextFieldGetString(w); if (value != NULL) { rc_width = atoi(value); XtSetArg(args[0], XmNwidth, rc_width); XtSetValues(RC, args, 1); } } static void updateRCheight(Widget w, XtPointer closure, XtPointer call_data) { int rc_height; char *value = NULL; value = XmTextFieldGetString(w); if (value != NULL) { rc_height = atoi(value); XtSetArg(args[0], XmNheight, rc_height); XtSetValues(RC, args, 1); } } static void updateButtonLabels(Widget w, XtPointer closure, XtPointer call_data) { XmString tcs; register int i; text_value = XmTextFieldGetString(w); tcs = XmStringCreateLtoR(text_value, XmSTRING_DEFAULT_CHARSET); XtSetArg(args[0], XmNlabelString, tcs); for (i = 0; i < num_children; i++) XtSetValues(child[i], args, 1); XmStringFree(tcs); return; } static void updateShadow( Widget w, XtPointer closure, XtPointer data) { XmScaleCallbackStruct *call_data=(XmScaleCallbackStruct *)data; int i; XtSetArg(args[0], XmNshadowThickness, call_data->value); for (i = 0; i < num_children; i++) XtSetValues(child[i], args, 1); return; } static void resetControlPanel(Widget w, XtPointer parent_widget, XtPointer call_data) { /* Destroy the topmost widgets */ XtDestroyWidget(RC); XtDestroyWidget(Popup); /* Reset global variable num_children */ num_children = 0; text_value = NULL; /* recreate the rowColumn */ n = 0; XtSetArg(args[n], XmNpacking, XmPACK_COLUMN); n++; XtSetArg(args[n], XmNnumColumns, 1); n++; RC = XmCreateRowColumn(parent, "outer", (ArgList) args, n); if (parent_class == xmMainWindowWidgetClass) { n = 0; XtSetArg(args[n], XmNworkWindow, RC); n++; XtSetValues(parent, args, n); } CreateChild(NULL); XtManageChild(RC); /* Recreate the control panel */ CreateControlPanel(); } /***** MAIN PROGRAM ***********/ int main(argc, argv) unsigned int argc; char **argv; { /* initialize toolkit */ CommonTestInit(argc, argv); n = 0; XtSetArg(args[n], XmNallowShellResize, True); n++; XtSetArg(args[n], XmNuseAsyncGeometry, True); n++; XtSetValues(Shell1, args, n); if (UserData != NULL) { InitializeClassLookupTables(); parent_class = ParentClass(UserData); if (parent_class != NULL) CreateParent(parent_class); } else { printf("Usage: %s -u xmWidgetClass\n", argv[0]); fflush(stdout); exit(1); } n = 0; XtSetArg(args[n], XmNpacking, XmPACK_COLUMN); n++; XtSetArg(args[n], XmNnumColumns, 1); n++; RC = XmCreateRowColumn(parent, "outer", (ArgList) args, n); if (parent_class == xmMainWindowWidgetClass) { n = 0; XtSetArg(args[n], XmNworkWindow, RC); n++; XtSetValues(parent, args, n); } CreateChild(NULL); XtManageChild(RC); XtManageChild(parent); CreateControlPanel(); XtRealizeWidget(Shell1); CommonPause(); CommonPause(); /* look around */ CommonPause(); CommonPause(); CommonPause(); CommonPause(); CommonPause(); CommonPause(); CommonPause(); XtAppMainLoop(app_context); } static void CreateParent(WidgetClass p_class) { int n; switch (parent_index) { case 0: parent = XmCreateBulletinBoard(Shell1, "parent", NULL, 0); break; case 1: parent = XmCreateDrawingArea(Shell1, "parent", NULL, 0); break; case 2: parent = XmCreateFrame(Shell1, "parent", NULL, 0); break; case 3: parent = XmCreateMainWindow(Shell1, "parent", NULL, 0); break; case 4: parent = XmCreateForm(Shell1, "parent", NULL, 0); break; } return; } static void CreateChild(char *name) { register int n; static char strbuf[50]; n = 0; XtSetArg(args[n], XmNhighlightOnEnter, True); n++; XtSetArg(args[n], XmNhighlightThickness, 2); n++; if (name == NULL) { sprintf(strbuf, "%d", num_children + 1); child[num_children] = XmCreatePushButton(RC, strbuf, args, n); } else child[num_children] = XmCreatePushButton(RC, name, args, n); XtManageChild(child[num_children]); XtAddCallback(child[num_children], XmNactivateCallback, print_width_height, NULL); num_children++; return; } WidgetClass ParentClass(char *parent_class_name) { int i; for (i = 0; i <= NUM_LEGAL_PARENTS - 1; i++) if (strcmp(parent_class_name, parent_table[i].string) == 0) { parent_index = i; return parent_table[i].class; } return ((WidgetClass) NULL); } void InitializeClassLookupTables() { int n; n = 0; child_table[n].class = xmScaleWidgetClass; n++; child_table[n].class = xmScrollBarWidgetClass; n++; child_table[n].class = xmCommandWidgetClass; n++; child_table[n].class = xmArrowButtonWidgetClass; n++; child_table[n].class = xmListWidgetClass; n++; child_table[n].class = xmSeparatorWidgetClass; n++; child_table[n].class = xmTextWidgetClass; n++; child_table[n].class = xmTextFieldWidgetClass; n++; child_table[n].class = xmLabelWidgetClass; n++; child_table[n].class = xmDrawnButtonWidgetClass; n++; child_table[n].class = xmPushButtonWidgetClass; n++; child_table[n].class = xmToggleButtonWidgetClass; n++; child_table[n].class = xmArrowButtonGadgetClass; n++; child_table[n].class = xmSeparatorGadgetClass; n++; child_table[n].class = xmLabelGadgetClass; n++; child_table[n].class = xmPushButtonGadgetClass; n++; child_table[n].class = xmToggleButtonGadgetClass; n++; n = 0; parent_table[n].class = xmBulletinBoardWidgetClass; n++; parent_table[n].class = xmDrawingAreaWidgetClass; n++; parent_table[n].class = xmFrameWidgetClass; n++; parent_table[n].class = xmMainWindowWidgetClass; n++; parent_table[n].class = xmFormWidgetClass; n++; } void CreateControlPanel() { Widget parenttype; Widget controlpanel, textf1, labeltext1, labelscale1, scale1; Widget labelnumcolumns, numcolscale, mainParent, labelpacking; Widget entryborder, marginheight, marginwidth, spacing, spacingscale; Widget actionsBoard, reportPanel, formPanel, kidPanel, rbox1, rbox2; Widget horizontal, vertical, rbox3, align_begin,align_center, align_end; Widget pack_tight, pack_none, pack_col, button1, button2, clear1, clear2; Widget labelAlign, entborscale, widthscale, heightscale, labelOrient; Widget separator, adjustlast, adjustmargin, isaligned, resizeheight; Widget resetPanel, resizewidth, rcwidth, rcheight, widthtext,heighttext; Widget shadow, shadowscale; XmString tcs, tcs1, tcs2; register int i, n; char buf[32]; n=0; XtSetArg (args[n], XmNy, 200); n++; XtSetArg(args[n], XtNallowShellResize, True); n++; Popup = XtCreatePopupShell ("Popup", topLevelShellWidgetClass, Shell1, args, n); n = 0; XtSetArg (args[n], XmNallowResize, True); n++; controlpanel = XmCreateBulletinBoard(Popup, "Control Panel", args, n); n = 0; mainParent = XmCreatePanedWindow(controlpanel, "mainParent", args, n); n = 0; actionsBoard = XmCreateBulletinBoard(mainParent, "actions", args, n); n = 0; tcs = XmStringCreateLtoR("Parent Widget Class: ", XmSTRING_DEFAULT_CHARSET); tcs1 = XmStringCreateLtoR(parent_table[parent_index].string, XmSTRING_DEFAULT_CHARSET); tcs2 = XmStringConcat(tcs, tcs1); XtSetArg(args[n], XmNlabelString, tcs2); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 10); n++; parenttype = XmCreateLabel(actionsBoard, "label2", args, n); XtManageChild(parenttype); XmStringFree(tcs); XmStringFree(tcs1); XmStringFree(tcs2); n = 0; tcs = XmStringCreateLtoR("Button Label String: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 48); n++; labeltext1 = XmCreateLabel(actionsBoard, "label", args, n); XtManageChild(labeltext1); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNcolumns, 15); n++; XtSetArg(args[n], XmNy, 40); n++; XtSetArg(args[n], XmNx, 150); n++; textf1 = XmCreateTextField(actionsBoard, "textf1", args, n); XtManageChild(textf1); XtAddCallback(textf1, XmNactivateCallback, updateButtonLabels, NULL); n = 0; tcs = XmStringCreateLtoR("Number of Children: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 90); n++; labelscale1 = XmCreateLabel(actionsBoard, "label2", args, n); XtManageChild(labelscale1); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNmaximum, MAX_CHILDREN); n++; XtSetArg(args[n], XmNminimum, 1); n++; XtSetArg(args[n], XmNx, 150); n++; XtSetArg(args[n], XmNy, 75); n++; XtSetArg(args[n], XmNshowValue, True); n++; scale1 = XmCreateScale(actionsBoard, "scale1", args, n); XtManageChild(scale1); XtAddCallback(scale1, XmNvalueChangedCallback, updateChildren, NULL); n = 0; tcs = XmStringCreateLtoR("XmNnumColumns: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 130); n++; labelnumcolumns = XmCreateLabel(actionsBoard, "label3", args, n); XtManageChild(labelnumcolumns); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNmaximum, 15); n++; XtSetArg(args[n], XmNminimum, 1); n++; XtSetArg(args[n], XmNx, 150); n++; XtSetArg(args[n], XmNy, 115); n++; XtSetArg(args[n], XmNshowValue, True); n++; numcolscale = XmCreateScale(actionsBoard, "numcolscale", args, n); XtManageChild(numcolscale); XtAddCallback(numcolscale, XmNvalueChangedCallback, updateNumColumns, NULL); n = 0; tcs = XmStringCreateLtoR("XmNentryBorder: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 170); n++; entryborder = XmCreateLabel(actionsBoard, "entryBorder", args, n); XtManageChild(entryborder); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNmaximum, 15); n++; XtSetArg(args[n], XmNminimum, 0); n++; XtSetArg(args[n], XmNx, 150); n++; XtSetArg(args[n], XmNy, 155); n++; XtSetArg(args[n], XmNshowValue, True); n++; entborscale = XmCreateScale(actionsBoard, "entborscale", args, n); XtManageChild(entborscale); XtAddCallback(entborscale, XmNvalueChangedCallback, updateEntryBorder, NULL); n = 0; tcs = XmStringCreateLtoR("XmNspacing: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 210); n++; spacing = XmCreateLabel(actionsBoard, "spacing", args, n); XtManageChild(spacing); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNmaximum, 15); n++; XtSetArg(args[n], XmNminimum, 0); n++; XtSetArg(args[n], XmNx, 150); n++; XtSetArg(args[n], XmNy, 195); n++; XtSetArg(args[n], XmNshowValue, True); n++; XtSetArg(args[n], XmNvalue, 3); n++; spacingscale = XmCreateScale(actionsBoard, "spacingscale", args, n); XtManageChild(spacingscale); XtAddCallback(spacingscale, XmNvalueChangedCallback, updateSpacing, NULL); n = 0; tcs = XmStringCreateLtoR("XmNmarginHeight: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 250); n++; marginheight = XmCreateLabel(actionsBoard, "marginheight", args, n); XtManageChild(marginheight); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNmaximum, 20); n++; XtSetArg(args[n], XmNminimum, 0); n++; XtSetArg(args[n], XmNx, 150); n++; XtSetArg(args[n], XmNy, 235); n++; XtSetArg(args[n], XmNshowValue, True); n++; XtSetArg(args[n], XmNvalue, 3); n++; heightscale = XmCreateScale(actionsBoard, "heightscale", args, n); XtManageChild(heightscale); XtAddCallback(heightscale, XmNvalueChangedCallback, updateHeight, NULL); n = 0; tcs = XmStringCreateLtoR("XmNmarginWidth: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 290); n++; marginwidth = XmCreateLabel(actionsBoard, "marginwidth", args, n); XtManageChild(marginwidth); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNmaximum, 20); n++; XtSetArg(args[n], XmNminimum, 0); n++; XtSetArg(args[n], XmNx, 150); n++; XtSetArg(args[n], XmNy, 275); n++; XtSetArg(args[n], XmNshowValue, True); n++; XtSetArg(args[n], XmNvalue, 3); n++; widthscale = XmCreateScale(actionsBoard, "widthscale", args, n); XtManageChild(widthscale); XtAddCallback(widthscale, XmNvalueChangedCallback, updateWidth, NULL); n = 0; tcs = XmStringCreateLtoR("XmNshadowThickness: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 330); n++; shadow = XmCreateLabel(actionsBoard, "shadowthickness", args, n); XtManageChild(shadow); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNmaximum, 20); n++; XtSetArg(args[n], XmNminimum, 0); n++; XtSetArg(args[n], XmNx, 150); n++; XtSetArg(args[n], XmNy, 315); n++; XtSetArg(args[n], XmNshowValue, True); n++; XtSetArg(args[n], XmNvalue, 2); n++; shadowscale = XmCreateScale(actionsBoard, "shadowscale", args, n); XtManageChild(shadowscale); XtAddCallback(shadowscale, XmNvalueChangedCallback, updateShadow, NULL); n = 0; tcs = XmStringCreateLtoR("XmNpacking: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 370); n++; labelpacking = XmCreateLabel(actionsBoard, "labelpacking", args, n); XtManageChild(labelpacking); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNisHomogeneous, True); n++; XtSetArg(args[n], XmNradioAlwaysOne, True); n++; XtSetArg(args[n], XmNborderWidth, 1); n++; XtSetArg(args[n], XmNx, 15); n++; XtSetArg(args[n], XmNy, 390); n++; rbox1 = XmCreateRadioBox (actionsBoard, "rbox1", args, n); n = 0; tcs = XmStringCreateLtoR("XmPACK_TIGHT", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; pack_tight = XmCreateToggleButtonGadget(rbox1, "pack_tight", args, n); XtManageChild(pack_tight); XmStringFree(tcs); XtAddCallback(pack_tight, XmNvalueChangedCallback, updatePacking, (XtPointer) XmPACK_TIGHT); n = 0; tcs = XmStringCreateLtoR("XmPACK_COLUMN", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNset, True); n++; pack_col = XmCreateToggleButtonGadget(rbox1, "pack_col", args, n); XtManageChild(pack_col); XmStringFree(tcs); XtAddCallback(pack_col, XmNvalueChangedCallback, updatePacking, (XtPointer) XmPACK_COLUMN); n = 0; tcs = XmStringCreateLtoR("XmPACK_NONE", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; pack_none = XmCreateToggleButtonGadget(rbox1, "pack_none", args, n); XtManageChild(pack_none); XmStringFree(tcs); XtAddCallback(pack_none, XmNvalueChangedCallback, updatePacking, (XtPointer) XmPACK_NONE); n = 0; tcs = XmStringCreateLtoR("XmNorientation: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 152); n++; XtSetArg(args[n], XmNy, 370); n++; labelOrient = XmCreateLabel(actionsBoard, "labelOrient", args, n); XtManageChild(labelOrient); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNisHomogeneous, True); n++; XtSetArg(args[n], XmNradioAlwaysOne, True); n++; XtSetArg(args[n], XmNborderWidth, 1); n++; XtSetArg(args[n], XmNx, 155); n++; XtSetArg(args[n], XmNy, 390); n++; rbox2 = XmCreateRadioBox (actionsBoard, "rbox2", args, n); n = 0; tcs = XmStringCreateLtoR("XmHORIZONTAL", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; horizontal = XmCreateToggleButtonGadget(rbox2, "horizontal", args, n); XtManageChild(horizontal); XmStringFree(tcs); XtAddCallback(horizontal, XmNvalueChangedCallback, updateOrientation, (XtPointer) XmHORIZONTAL); n = 0; tcs = XmStringCreateLtoR("XmVERTICAL", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNset, True); n++; vertical = XmCreateToggleButtonGadget(rbox2, "vertical", args, n); XtManageChild(vertical); XmStringFree(tcs); XtAddCallback(vertical, XmNvalueChangedCallback, updateOrientation, (XtPointer) XmVERTICAL); XtManageChild(rbox1); XtManageChild(rbox2); n = 0; tcs = XmStringCreateLtoR("XmNadjustLast", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 315); n++; XtSetArg(args[n], XmNy, 40); n++; XtSetArg(args[n], XmNset, True); n++; adjustlast = XmCreateToggleButton(actionsBoard, "adjustlast", args, n); XtManageChild(adjustlast); XmStringFree(tcs); XtAddCallback(adjustlast, XmNvalueChangedCallback, updateAdjustLast, NULL); n = 0; tcs = XmStringCreateLtoR("XmNadjustMargin", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 315); n++; XtSetArg(args[n], XmNy, 70); n++; XtSetArg(args[n], XmNset, True); n++; adjustmargin = XmCreateToggleButton(actionsBoard, "adjustmargin", args, n); XtManageChild(adjustmargin); XmStringFree(tcs); XtAddCallback(adjustmargin, XmNvalueChangedCallback, updateAdjustMargin, NULL); n = 0; tcs = XmStringCreateLtoR("XmNisAligned", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 315); n++; XtSetArg(args[n], XmNy, 100); n++; XtSetArg(args[n], XmNset, True); n++; isaligned = XmCreateToggleButton(actionsBoard, "isAligned", args, n); XtManageChild(isaligned); XmStringFree(tcs); XtAddCallback(isaligned, XmNvalueChangedCallback, updateIsAligned, NULL); n = 0; tcs = XmStringCreateLtoR("XmNresizeHeight", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 315); n++; XtSetArg(args[n], XmNy, 130); n++; XtSetArg(args[n], XmNset, True); n++; resizeheight = XmCreateToggleButton(actionsBoard, "resizeHeight", args, n); XtManageChild(resizeheight); XmStringFree(tcs); XtAddCallback(resizeheight, XmNvalueChangedCallback, updateResizeHeight, NULL); n = 0; tcs = XmStringCreateLtoR("XmNresizeWidth", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 315); n++; XtSetArg(args[n], XmNy, 160); n++; XtSetArg(args[n], XmNset, True); n++; resizewidth = XmCreateToggleButton(actionsBoard, "resizewidth", args, n); XtManageChild(resizewidth); XmStringFree(tcs); XtAddCallback(resizewidth, XmNvalueChangedCallback, updateResizeWidth, NULL); n = 0; XtSetArg(args[n], XmNx, 315); n++; XtSetArg(args[n], XmNy, 205); n++; XtSetArg(args[n], XmNmarginWidth, 5); n++; XtSetArg(args[n], XmNmarginHeight, 5); n++; resetPanel = XmCreatePushButton(actionsBoard, "Reset_Panel", args, n); XtManageChild(resetPanel); XtAddCallback(resetPanel, XmNactivateCallback, resetControlPanel, (XtPointer) controlpanel); n = 0; tcs = XmStringCreateLtoR("XmNwidth: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 315); n++; XtSetArg(args[n], XmNy, 255); n++; rcwidth = XmCreateLabel(actionsBoard, "rcwidth", args, n); XtManageChild(rcwidth); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNcolumns, 15); n++; XtSetArg(args[n], XmNx, 390); n++; XtSetArg(args[n], XmNy, 250); n++; widthtext = XmCreateTextField(actionsBoard, "widthtext", args, n); XtManageChild(widthtext); XtAddCallback(widthtext, XmNactivateCallback, updateRCwidth, NULL); n = 0; tcs = XmStringCreateLtoR("XmNheight: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 315); n++; XtSetArg(args[n], XmNy, 290); n++; rcheight = XmCreateLabel(actionsBoard, "rcheight", args, n); XtManageChild(rcheight); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNcolumns, 15); n++; XtSetArg(args[n], XmNx, 390); n++; XtSetArg(args[n], XmNy, 285); n++; heighttext = XmCreateTextField(actionsBoard, "heighttext", args, n); XtManageChild(heighttext); XtAddCallback(heighttext, XmNactivateCallback, updateRCheight, NULL); n = 0; tcs = XmStringCreateLtoR("XmNentryAlignment: ", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNx, 315); n++; XtSetArg(args[n], XmNy, 370); n++; labelAlign = XmCreateLabel(actionsBoard, "labelAlign", args, n); XtManageChild(labelAlign); XmStringFree(tcs); n = 0; XtSetArg(args[n], XmNisHomogeneous, True); n++; XtSetArg(args[n], XmNradioAlwaysOne, True); n++; XtSetArg(args[n], XmNborderWidth, 1); n++; XtSetArg(args[n], XmNx, 320); n++; XtSetArg(args[n], XmNy, 390); n++; rbox3 = XmCreateRadioBox (actionsBoard, "rbox3", args, n); XtManageChild(rbox3); n = 0; tcs = XmStringCreateLtoR("XmALIGNMENT_BEGINNING", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; XtSetArg(args[n], XmNset, True); n++; align_begin = XmCreateToggleButtonGadget(rbox3, "align_begin", args, n); XtManageChild(align_begin); XmStringFree(tcs); XtAddCallback(align_begin, XmNvalueChangedCallback, updateAlignment, (XtPointer) XmALIGNMENT_BEGINNING); n = 0; tcs = XmStringCreateLtoR("XmALIGNMENT_CENTER", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; align_center = XmCreateToggleButtonGadget(rbox3, "align_center", args, n); XtManageChild(align_center); XmStringFree(tcs); XtAddCallback(align_center, XmNvalueChangedCallback, updateAlignment, (XtPointer) XmALIGNMENT_CENTER); n = 0; tcs = XmStringCreateLtoR("XmALIGNMENT_END", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, tcs); n++; align_end = XmCreateToggleButtonGadget(rbox3, "align_end", args, n); XtManageChild(align_end); XmStringFree(tcs); XtAddCallback(align_end, XmNvalueChangedCallback, updateAlignment, (XtPointer) XmALIGNMENT_END); XtManageChild(actionsBoard); XtManageChild(mainParent); XtManageChild(controlpanel); XtPopup (Popup,XtGrabNone); }