/* * @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: CreatChildrn.c /main/8 1995/07/14 11:24:23 drk $" #endif #endif /*********************************************************************** @(#)CreatChildrn.c 1.9.1.1 Date:1/22/91 Author: TAT History: 06/07/90 TAT Add to sccs tree 06/15/90 SJS add copyright 06/26/90 SJS add Dialog Shell convenience function checks 06/29/90 SJS correct PanedWindow/ScrolledWindow case 07/18/90 SJS add test for Null in SelectionBox case 07/27/90 SJS take out Paned Window ifdef 08/02/90 SJS add FileSelectionBox, add Null checks for ScrolledW Calls: Summary: Creates all the widget infos of the specified widget's children and allocs their colors. INPUTS widget_info - Pointer to the mvs widget info record OUTPUTS none RETURNS nothing ************************************************************************/ #include "mvslib.h" #include #include #include #include #include #include #include #include #include #include #include #include /* Possible non-portability */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* Possible non-portability */ #include #include #include #include /* Possible non-portability */ #include /* Possible non-portability */ #include #include #include #include #include #include #include #include #include #include #ifndef MOTIF1_1 #include #endif /* MOTIF1_1 */ static void UpdatePanes(); void mvsCreateChildren(widget_info) MvsWidgetInfoRecord *widget_info; { int class_code = mvsGetClassCode(widget_info->widget); Widget widget = widget_info->widget; Widget child; MvsWidgetInfoRecord *child_info; int num_children; Widget *children; Widget tear_off; XmContainerConstraint containerConstraint; int i, n, pathMode; Arg args[4]; if (widget_info->parent != NULL && widget_info->parent->widget != NULL) if (mvsGetClassCode(widget_info->parent->widget) == mvsXmPanedWindowWidgetClass) UpdatePanes(widget_info->parent); switch (class_code) { case mvsXmDialogShellWidgetClass: num_children = (int)mvsGetResourceValue(widget,XmNnumChildren, T_Cardinal); children = (Widget *)mvsGetResourceValue(widget,XmNchildren, T_WidgetList); for (i=0; iparent->widget_class_info->class_name, "XmContainer") == 0) { /* * Get the Container constraint part from the IconGadget * and get the outline button widget from the constraint part */ containerConstraint = GetContainerConstraint(widget); child = containerConstraint->related_cwid; /* * Set the Outline Button as an mvs child of * the IconGadget, although it is a child of * the Container widget */ if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonGadgetClass); } } /* end if parent is a Container */ break; case mvsXmCommandWidgetClass: child = XmCommandGetChild(widget,XmDIALOG_COMMAND_TEXT); child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmTextWidgetClass); child = XmCommandGetChild(widget,XmDIALOG_PROMPT_LABEL); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelWidgetClass); } child = XmCommandGetChild(widget,XmDIALOG_HISTORY_LIST); child = XtParent(child); /* Get scrolled window parent */ child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmScrolledWindowWidgetClass); mvsCreateChildren(child_info); break; case mvsXmComboBoxWidgetClass: child = XtNameToWidget(widget,"*List"); child = XtParent(child); /* Get scrolled window parent */ child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmScrolledWindowWidgetClass); mvsCreateChildren(child_info); child = XtNameToWidget(widget,"Text"); child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmTextFieldWidgetClass); mvsCreateChildren(child_info); break; case mvsXmNotebookWidgetClass: child = XtNameToWidget(widget,"MajorTabScrollerNext"); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmArrowButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmArrowButtonWidgetClass); } child = XtNameToWidget(widget,"MajorTabScrollerPrevious"); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmArrowButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmArrowButtonWidgetClass); } child = XtNameToWidget(widget,"MinorTabScrollerNext"); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmArrowButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmArrowButtonWidgetClass); } child = XtNameToWidget(widget,"MinorTabScrollerPrevious"); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmArrowButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmArrowButtonWidgetClass); } break; case mvsXmFileSelectionBoxWidgetClass: /* See if this is a CDE FileSelectionBox */ n = 0; XtSetArg (args[n], XmNpathMode, &pathMode); n++; XtGetValues (widget, args, n); if (pathMode == XmPATH_MODE_RELATIVE) { child = XtNameToWidget(widget,"DirText"); if (child != NULL) { child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmTextFieldWidgetClass); } child = XtNameToWidget(widget,"DirL"); if (child != NULL) { child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelGadgetClass); } } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_APPLY_BUTTON); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonWidgetClass); } child =XmFileSelectionBoxGetChild(widget,XmDIALOG_CANCEL_BUTTON); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonWidgetClass); } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_FILTER_LABEL); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelWidgetClass); } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_FILTER_TEXT); if (child != NULL) { child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmTextWidgetClass); } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_HELP_BUTTON); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonWidgetClass); } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_FILE_LIST); child = XtParent(child); /* Get scrolled window parent */ child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmScrolledWindowWidgetClass); mvsCreateChildren(child_info); child = XmFileSelectionBoxGetChild(widget,XmDIALOG_FILE_LIST_LABEL); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelWidgetClass); } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_OK_BUTTON); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonWidgetClass); } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_SEPARATOR); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorWidgetClass); } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_SELECTION_LABEL); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelWidgetClass); } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_TEXT); child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmTextWidgetClass); child = XmFileSelectionBoxGetChild(widget,XmDIALOG_DIR_LIST_LABEL); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelWidgetClass); } child = XmFileSelectionBoxGetChild(widget,XmDIALOG_DIR_LIST); child = XtParent(child); /* Get scrolled window parent */ child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmScrolledWindowWidgetClass); mvsCreateChildren(child_info); break; case mvsXmMainWindowWidgetClass: child = (Widget)mvsGetResourceValue(widget,XmNcommandWindow, T_Widget_ref); if(child != NULL) { child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmTextWidgetClass); } child = (Widget)mvsGetResourceValue(widget,XmNmenuBar, T_Widget_ref); if(child != NULL) { child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmRowColumnWidgetClass); } child = (Widget)mvsGetResourceValue(widget,XmNmessageWindow, T_Widget_ref); if(child != NULL) { child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmTextWidgetClass); } child = (Widget)mvsGetResourceValue(widget,XmNhorizontalScrollBar, T_Widget_ref); if(child != NULL) { child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmScrollBarWidgetClass); } child = (Widget)mvsGetResourceValue(widget,XmNverticalScrollBar, T_Widget_ref); if(child != NULL) { child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmScrollBarWidgetClass); } child = XmMainWindowSep1(widget); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorWidgetClass); } child = XmMainWindowSep2(widget); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorWidgetClass); } child = XmMainWindowSep3(widget); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorWidgetClass); } break; case mvsXmMessageBoxWidgetClass: child = XmMessageBoxGetChild(widget,XmDIALOG_CANCEL_BUTTON); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonWidgetClass); } child = XmMessageBoxGetChild(widget,XmDIALOG_HELP_BUTTON); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonWidgetClass); } child = XmMessageBoxGetChild(widget,XmDIALOG_MESSAGE_LABEL); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelWidgetClass); } child = XmMessageBoxGetChild(widget,XmDIALOG_OK_BUTTON); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmPushButtonWidgetClass); } child = XmMessageBoxGetChild(widget,XmDIALOG_SEPARATOR); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmSeparatorWidgetClass); } child = XmMessageBoxGetChild(widget,XmDIALOG_SYMBOL_LABEL); if (child != NULL) { if (XmIsGadget(child)) child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelGadgetClass); else child_info = mvsSetupNewWidgetInfo(widget_info,child, iXmLabelWidgetClass); } break; case mvsXmPanedWindowWidgetClass: num_children = (int)mvsGetResourceValue(widget,XmNnumChildren, T_Cardinal); children = (Widget *)mvsGetResourceValue(widget,XmNchildren, T_WidgetList); for (i=0; irow_column.tear_off_control; if (tear_off != NULL) { child_info = mvsSetupNewWidgetInfo(widget_info,tear_off, iXmTearOffButtonWidgetClass); } #endif /* MOTIF1_1 */ break; default: /* Do nothing */ break; } /* End switch() */ } /* End mvsCreateChildren() */ static void UpdatePanes(widget_info) MvsWidgetInfoRecord *widget_info; { Widget widget = widget_info->widget; int class_code = mvsGetClassCode(widget_info->widget); Widget child; MvsWidgetInfoRecord *child_info; MvsWidgetInfoRecord *w_info = NULL; int num_children; Widget *children; int i; num_children = (int)mvsGetResourceValue(widget,XmNnumChildren, T_Cardinal); children = (Widget *)mvsGetResourceValue(widget,XmNchildren, T_WidgetList); for (i=0; i