|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* HISTORY
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#ifdef REV_INFO
|
|
Packit |
b099d7 |
#ifndef lint
|
|
Packit |
b099d7 |
static char rcsid[] = "$TOG: BaseClass.c /main/20 1997/03/31 13:14:31 dbl $"
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
/* (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
|
|
Packit |
b099d7 |
/* (c) Copyright 1989, 1990 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
|
|
Packit |
b099d7 |
/* (c) Copyright 1988 MASSACHUSETTS INSTITUTE OF TECHNOLOGY */
|
|
Packit |
b099d7 |
#define HAVE_EXTENSIONS
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
b099d7 |
#include <config.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Xm/XmP.h>
|
|
Packit |
b099d7 |
#include <X11/ShellP.h>
|
|
Packit |
b099d7 |
#include <Xm/ExtObjectP.h>
|
|
Packit |
b099d7 |
#include <Xm/Screen.h>
|
|
Packit |
b099d7 |
#include <Xm/VendorSEP.h>
|
|
Packit |
b099d7 |
#include <Xm/XmosP.h> /* for bzero */
|
|
Packit |
b099d7 |
#include "BaseClassI.h"
|
|
Packit |
b099d7 |
#include "CallbackI.h"
|
|
Packit |
b099d7 |
#include "DropSMgrI.h"
|
|
Packit |
b099d7 |
#include "MessagesI.h"
|
|
Packit |
b099d7 |
#include "TraversalI.h"
|
|
Packit |
b099d7 |
#include "XmI.h"
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define FIX_1392
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define MSG1 _XmMMsgBaseClass_0000
|
|
Packit |
b099d7 |
#define MSG2 _XmMMsgBaseClass_0001
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define IsBaseClass(wc) \
|
|
Packit |
b099d7 |
((wc == xmGadgetClass) ||\
|
|
Packit |
b099d7 |
(wc == xmManagerWidgetClass) ||\
|
|
Packit |
b099d7 |
(wc == xmPrimitiveWidgetClass) ||\
|
|
Packit |
b099d7 |
(wc == vendorShellWidgetClass) ||\
|
|
Packit |
b099d7 |
(wc == xmDisplayClass) ||\
|
|
Packit |
b099d7 |
(wc == xmScreenClass) ||\
|
|
Packit |
b099d7 |
(wc == xmExtObjectClass) ||\
|
|
Packit |
b099d7 |
(_XmIsFastSubclass(wc, XmMENU_SHELL_BIT)))
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define isWrappedXtClass(wc) \
|
|
Packit |
b099d7 |
((wc == rectObjClass) ||\
|
|
Packit |
b099d7 |
(wc == compositeWidgetClass))
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* These must be initialized; otherwise they are "secondary symbols"
|
|
Packit |
b099d7 |
* and are not actually present in the library under HP/UX 10.0. That
|
|
Packit |
b099d7 |
* caused exportlistgen to hide them entirely, causing links to fail.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
externaldef(baseclass) XrmQuark XmQmotif = NULLQUARK;
|
|
Packit |
b099d7 |
externaldef(baseclass) XmBaseClassExt *_Xm_fastPtr = NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmObjectClassWrapper {
|
|
Packit |
b099d7 |
XtInitProc initialize;
|
|
Packit |
b099d7 |
XtSetValuesFunc setValues;
|
|
Packit |
b099d7 |
XtArgsProc getValues;
|
|
Packit |
b099d7 |
XtWidgetClassProc classPartInit;
|
|
Packit |
b099d7 |
} XmObjectClassWrapper;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmObjectClassWrapper objectClassWrapper;
|
|
Packit |
b099d7 |
static XContext resizeRefWContext = 0;
|
|
Packit |
b099d7 |
static XContext geoRefWContext = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define GetRefW(dpy, context, w) \
|
|
Packit |
b099d7 |
if (XFindContext(dpy, None, context, (XPointer *) &w)) w = NULL
|
|
Packit |
b099d7 |
#define SetRefW(dpy, context, w) \
|
|
Packit |
b099d7 |
XSaveContext(dpy, None, context, (char *)w)
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
externaldef(xminheritclass) int _XmInheritClass = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******** Static Function Declarations ********/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmWrapperData GetWrapperData(WidgetClass w_class);
|
|
Packit |
b099d7 |
static XContext ExtTypeToContext(unsigned char extType);
|
|
Packit |
b099d7 |
static void RealizeWrapper0(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper1(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper2(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper3(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper4(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper5(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper6(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper7(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper8(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper9(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static void RealizeWrapper10(Widget w, Mask *vmask, XSetWindowAttributes *attr);
|
|
Packit |
b099d7 |
static Cardinal GetRealizeDepth(WidgetClass wc);
|
|
Packit |
b099d7 |
static void RealizeWrapper(Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr,
|
|
Packit |
b099d7 |
Cardinal depth);
|
|
Packit |
b099d7 |
static void ResizeWrapper0(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper1(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper2(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper3(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper4(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper5(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper6(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper7(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper8(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper9(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper10(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper11(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper12(Widget w);
|
|
Packit |
b099d7 |
static void ResizeWrapper13(Widget w);
|
|
Packit |
b099d7 |
static Cardinal GetResizeDepth(WidgetClass wc);
|
|
Packit |
b099d7 |
static void ResizeWrapper(Widget w, int depth);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper0(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper1(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper2(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper3(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper4(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper5(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper6(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper7(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper8(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper9(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper10(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper11(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper12(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed);
|
|
Packit |
b099d7 |
static Cardinal GetGeometryHandlerDepth(WidgetClass wc);
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryHandlerWrapper(Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed,
|
|
Packit |
b099d7 |
int depth);
|
|
Packit |
b099d7 |
static XmBaseClassExt * BaseClassPartInitialize(WidgetClass wc);
|
|
Packit |
b099d7 |
static void ClassPartInitRootWrapper(WidgetClass wc);
|
|
Packit |
b099d7 |
static void ClassPartInitLeafWrapper(WidgetClass wc);
|
|
Packit |
b099d7 |
static XtResourceList * CreateIndirectionTable(XtResourceList resources,
|
|
Packit |
b099d7 |
Cardinal num_resources);
|
|
Packit |
b099d7 |
static void InitializeRootWrapper(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args) ;
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth);
|
|
Packit |
b099d7 |
static Boolean SetValuesRootWrapper(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth);
|
|
Packit |
b099d7 |
static void GetValuesRootWrapper(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth);
|
|
Packit |
b099d7 |
static int GetDepth(WidgetClass wc);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper0(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper1(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper2(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper3(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper4(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper5(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper6(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper7(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper8(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InitializeLeafWrapper9(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper0(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper1(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper2(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper3(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper4(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper5(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper6(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper7(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper8(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void CInitializeLeafWrapper9(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper0(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper1(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper2(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper3(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper4(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper5(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper6(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper7(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper8(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValuesLeafWrapper9(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper0(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper1(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper2(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper3(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper4(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper5(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper6(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper7(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper8(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean CSetValuesLeafWrapper9(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper0(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper1(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper2(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper3(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper4(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper5(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper6(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper7(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper8(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void GetValuesLeafWrapper9(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******** End Static Function Declarations ********/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmGenericClassExt *
|
|
Packit |
b099d7 |
_XmGetClassExtensionPtr(
|
|
Packit |
b099d7 |
XmGenericClassExt *listHeadPtr,
|
|
Packit |
b099d7 |
XrmQuark owner )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmGenericClassExt *lclPtr = listHeadPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef DEBUG
|
|
Packit |
b099d7 |
if (!lclPtr)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmeWarning(NULL, "_XmGetClassExtensionPtr: invalid class ext pointer");
|
|
Packit |
b099d7 |
return NULL;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#endif /* DEBUG */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
while (lclPtr && *lclPtr && ((*lclPtr)->record_type != owner))
|
|
Packit |
b099d7 |
lclPtr = (XmGenericClassExt *) &((*lclPtr)->next_extension);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return lclPtr;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmWrapperData
|
|
Packit |
b099d7 |
GetWrapperData(
|
|
Packit |
b099d7 |
WidgetClass w_class )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wcePtr = _XmGetBaseClassExtPtr( w_class, XmQmotif);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!*wcePtr)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
*wcePtr = (XmBaseClassExt) XtCalloc(1, sizeof(XmBaseClassExtRec));
|
|
Packit |
b099d7 |
(*wcePtr)->next_extension = NULL;
|
|
Packit |
b099d7 |
(*wcePtr)->record_type = XmQmotif;
|
|
Packit |
b099d7 |
(*wcePtr)->version = XmBaseClassExtVersion;
|
|
Packit |
b099d7 |
(*wcePtr)->record_size = sizeof( XmBaseClassExtRec);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->version < XmBaseClassExtVersion)
|
|
Packit |
b099d7 |
return NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!((*wcePtr)->wrapperData))
|
|
Packit |
b099d7 |
(*wcePtr)->wrapperData =
|
|
Packit |
b099d7 |
(XmWrapperData) XtCalloc(1, sizeof(XmWrapperDataRec));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return (*wcePtr)->wrapperData;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _ExtToContextRec {
|
|
Packit |
b099d7 |
unsigned char extType;
|
|
Packit |
b099d7 |
XContext context;
|
|
Packit |
b099d7 |
} ExtToContextRec, *ExtToContext;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XContext
|
|
Packit |
b099d7 |
ExtTypeToContext(
|
|
Packit |
b099d7 |
unsigned char extType )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
static ExtToContextRec extToContextMap[16];
|
|
Packit |
b099d7 |
Cardinal i;
|
|
Packit |
b099d7 |
ExtToContext curr;
|
|
Packit |
b099d7 |
XContext context = (XContext) NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
for (i = 0, curr = &extToContextMap[0];
|
|
Packit |
b099d7 |
i < XtNumber(extToContextMap) && !context;
|
|
Packit |
b099d7 |
i++, curr++)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (curr->extType == extType)
|
|
Packit |
b099d7 |
context = curr->context;
|
|
Packit |
b099d7 |
else if (!curr->extType)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
curr->extType = extType;
|
|
Packit |
b099d7 |
context = curr->context = XUniqueContext();
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!context)
|
|
Packit |
b099d7 |
XmeWarning(NULL, MSG1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return context;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmAssocDataRec {
|
|
Packit |
b099d7 |
XtPointer data;
|
|
Packit |
b099d7 |
struct _XmAssocDataRec *next;
|
|
Packit |
b099d7 |
} XmAssocDataRec, *XmAssocData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmPushWidgetExtData(
|
|
Packit |
b099d7 |
Widget widget,
|
|
Packit |
b099d7 |
XmWidgetExtData data,
|
|
Packit |
b099d7 |
#if NeedWidePrototypes
|
|
Packit |
b099d7 |
unsigned int extType )
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
unsigned char extType )
|
|
Packit |
b099d7 |
#endif /* NeedWidePrototypes */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmAssocData newData;
|
|
Packit |
b099d7 |
XmAssocData assocData = NULL;
|
|
Packit |
b099d7 |
XmAssocData *assocDataPtr;
|
|
Packit |
b099d7 |
Boolean empty;
|
|
Packit |
b099d7 |
XContext widgetExtContext = ExtTypeToContext(extType);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
newData = (XmAssocData) XtCalloc(1, sizeof(XmAssocDataRec));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
newData->data = (XtPointer)data;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
empty = XFindContext(XtDisplay(widget), (Window) widget,
|
|
Packit |
b099d7 |
widgetExtContext, (char **) &assocData);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
assocDataPtr = &assocData;
|
|
Packit |
b099d7 |
while (*assocDataPtr)
|
|
Packit |
b099d7 |
assocDataPtr = &((*assocDataPtr)->next);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*assocDataPtr = newData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (empty)
|
|
Packit |
b099d7 |
XSaveContext(XtDisplay(widget), (Window) widget,
|
|
Packit |
b099d7 |
widgetExtContext, (XPointer) assocData);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmPopWidgetExtData(
|
|
Packit |
b099d7 |
Widget widget,
|
|
Packit |
b099d7 |
XmWidgetExtData *dataRtn,
|
|
Packit |
b099d7 |
#if NeedWidePrototypes
|
|
Packit |
b099d7 |
unsigned int extType )
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
unsigned char extType )
|
|
Packit |
b099d7 |
#endif /* NeedWidePrototypes */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmAssocData assocData = NULL;
|
|
Packit |
b099d7 |
XmAssocData *assocDataPtr;
|
|
Packit |
b099d7 |
XContext widgetExtContext = ExtTypeToContext(extType);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Initialize the return parameter. */
|
|
Packit |
b099d7 |
*dataRtn = NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XFindContext(XtDisplay(widget),
|
|
Packit |
b099d7 |
(Window) widget,
|
|
Packit |
b099d7 |
widgetExtContext,
|
|
Packit |
b099d7 |
(char **) &assocData))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
#ifdef DEBUG
|
|
Packit |
b099d7 |
XmeWarning(NULL, MSG2);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
assocDataPtr = &assocData;
|
|
Packit |
b099d7 |
while ((*assocDataPtr) && (*assocDataPtr)->next)
|
|
Packit |
b099d7 |
assocDataPtr = &((*assocDataPtr)->next);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (*assocDataPtr == assocData)
|
|
Packit |
b099d7 |
XDeleteContext(XtDisplay(widget), (Window)widget, widgetExtContext);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (*assocDataPtr)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
*dataRtn = (XmWidgetExtData) (*assocDataPtr)->data;
|
|
Packit |
b099d7 |
XtFree((char *) *assocDataPtr);
|
|
Packit |
b099d7 |
*assocDataPtr = NULL;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmWidgetExtData
|
|
Packit |
b099d7 |
_XmGetWidgetExtData(
|
|
Packit |
b099d7 |
Widget widget,
|
|
Packit |
b099d7 |
#if NeedWidePrototypes
|
|
Packit |
b099d7 |
unsigned int extType )
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
unsigned char extType )
|
|
Packit |
b099d7 |
#endif /* NeedWidePrototypes */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmAssocData assocData = NULL;
|
|
Packit |
b099d7 |
XmAssocData *assocDataPtr;
|
|
Packit |
b099d7 |
XContext widgetExtContext = ExtTypeToContext(extType);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((XFindContext(XtDisplay(widget),
|
|
Packit |
b099d7 |
(Window) widget,
|
|
Packit |
b099d7 |
widgetExtContext,
|
|
Packit |
b099d7 |
(char **) &assocData)))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
#ifdef DEBUG
|
|
Packit |
b099d7 |
XmeWarning(NULL, "no extension data on stack");
|
|
Packit |
b099d7 |
#endif /* DEBUG */
|
|
Packit |
b099d7 |
return NULL;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
assocDataPtr = &assocData;
|
|
Packit |
b099d7 |
while ((*assocDataPtr)->next)
|
|
Packit |
b099d7 |
assocDataPtr = &((*assocDataPtr)->next);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return (XmWidgetExtData) (*assocDataPtr)->data;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Boolean
|
|
Packit |
b099d7 |
_XmIsSubclassOf(
|
|
Packit |
b099d7 |
WidgetClass wc,
|
|
Packit |
b099d7 |
WidgetClass sc)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass p = wc;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
while ((p) && (p != sc))
|
|
Packit |
b099d7 |
p = p->core_class.superclass;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return (p == sc);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*********************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* RealizeWrappers for vendorShell
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*********************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper0(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper1(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper2(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 2);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper3(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 3);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper4(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 4);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper5(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 5);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper6(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 6);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper7(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 7);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper8(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 8);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper9(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 9);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper10(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RealizeWrapper(w, vmask, attr, 10);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Used to be XmConst, but this was not linking on Solaris */
|
|
Packit |
b099d7 |
static XtRealizeProc realizeWrappers[] = {
|
|
Packit |
b099d7 |
RealizeWrapper0,
|
|
Packit |
b099d7 |
RealizeWrapper1,
|
|
Packit |
b099d7 |
RealizeWrapper2,
|
|
Packit |
b099d7 |
RealizeWrapper3,
|
|
Packit |
b099d7 |
RealizeWrapper4,
|
|
Packit |
b099d7 |
RealizeWrapper5,
|
|
Packit |
b099d7 |
RealizeWrapper6,
|
|
Packit |
b099d7 |
RealizeWrapper7,
|
|
Packit |
b099d7 |
RealizeWrapper8,
|
|
Packit |
b099d7 |
RealizeWrapper9,
|
|
Packit |
b099d7 |
RealizeWrapper10
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Cardinal
|
|
Packit |
b099d7 |
GetRealizeDepth(
|
|
Packit |
b099d7 |
WidgetClass wc )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Cardinal i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
i = 0;
|
|
Packit |
b099d7 |
while (wc && wc != vendorShellWidgetClass)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
i++;
|
|
Packit |
b099d7 |
wc = wc->core_class.superclass;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wc)
|
|
Packit |
b099d7 |
return i;
|
|
Packit |
b099d7 |
#ifdef DEBUG
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
XtError("bad class for shell realize");
|
|
Packit |
b099d7 |
#endif /* DEBUG */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return 0;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* RealizeWrapper
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
RealizeWrapper(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
Mask *vmask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attr,
|
|
Packit |
b099d7 |
Cardinal depth )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (XmIsVendorShell(w))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmWidgetExtData extData;
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(w);
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
XtRealizeProc realize;
|
|
Packit |
b099d7 |
Cardinal leafDepth = GetRealizeDepth(wc);
|
|
Packit |
b099d7 |
Cardinal depthDiff = leafDepth - depth;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
while (depthDiff)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
depthDiff--;
|
|
Packit |
b099d7 |
wc = wc->core_class.superclass;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
realize = wrapperData ? wrapperData->realize : NULL;
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
if (realize)
|
|
Packit |
b099d7 |
(*realize)(w, vmask, attr);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#if 0
|
|
Packit |
b099d7 |
/* DRK 6/20/94 -- This change breaks our test environment; when
|
|
Packit |
b099d7 |
* present the normal shell isn't added to the grab list
|
|
Packit |
b099d7 |
* because VendorExtRealize is never called. It used to
|
|
Packit |
b099d7 |
* be called for the ApplicationShell class.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* CR 9266: Only call the RealizeCallback if we're doing the
|
|
Packit |
b099d7 |
* VendorShell class level. Do not call multiple times for
|
|
Packit |
b099d7 |
* VendorShell subclasses.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ((extData = _XmGetWidgetExtData(w, XmSHELL_EXTENSION)) &&
|
|
Packit |
b099d7 |
(extData->widget) && wc == vendorShellWidgetClass)
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* CR 3353 - Avoid calling the RealizeCallback twice for DialogShells
|
|
Packit |
b099d7 |
* by checking the WidgetClass name. If it is XmDialogShell,
|
|
Packit |
b099d7 |
* do not call the callback (it will be called prior when
|
|
Packit |
b099d7 |
* the WidgetClass is VendorShell).
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ((extData = _XmGetWidgetExtData(w, XmSHELL_EXTENSION)) &&
|
|
Packit |
b099d7 |
(extData->widget) &&
|
|
Packit |
b099d7 |
strcmp(wc->core_class.class_name, "XmDialogShell"))
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmCallCallbackList(extData->widget,
|
|
Packit |
b099d7 |
((XmVendorShellExtObject)
|
|
Packit |
b099d7 |
(extData->widget))->vendor.realize_callback,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#ifdef DEBUG
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
XmeWarning(NULL, "we only support realize callbacks on shells");
|
|
Packit |
b099d7 |
#endif /* DEBUG */
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*********************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* ResizeWrappers for rectObj
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*********************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper0(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper1(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper2(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 2);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper3(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 3);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper4(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 4);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper5(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 5);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper6(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 6);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper7(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 7);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper8(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 8);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper9(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 9);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper10(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 10);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper11(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 11);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper12(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 12);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper13(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ResizeWrapper(w, 13);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Used to be XmConst, but this was not linking on Solaris */
|
|
Packit |
b099d7 |
static XtWidgetProc resizeWrappers[] = {
|
|
Packit |
b099d7 |
ResizeWrapper0,
|
|
Packit |
b099d7 |
ResizeWrapper1,
|
|
Packit |
b099d7 |
ResizeWrapper2,
|
|
Packit |
b099d7 |
ResizeWrapper3,
|
|
Packit |
b099d7 |
ResizeWrapper4,
|
|
Packit |
b099d7 |
ResizeWrapper5,
|
|
Packit |
b099d7 |
ResizeWrapper6,
|
|
Packit |
b099d7 |
ResizeWrapper7,
|
|
Packit |
b099d7 |
ResizeWrapper8,
|
|
Packit |
b099d7 |
ResizeWrapper9,
|
|
Packit |
b099d7 |
ResizeWrapper10,
|
|
Packit |
b099d7 |
ResizeWrapper11,
|
|
Packit |
b099d7 |
ResizeWrapper12,
|
|
Packit |
b099d7 |
ResizeWrapper13
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Cardinal
|
|
Packit |
b099d7 |
GetResizeDepth(
|
|
Packit |
b099d7 |
WidgetClass wc )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Cardinal i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
i = 0;
|
|
Packit |
b099d7 |
while (wc && wc != rectObjClass)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
i++;
|
|
Packit |
b099d7 |
wc = wc->core_class.superclass;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wc)
|
|
Packit |
b099d7 |
return i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return 0;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* ResizeWrapper
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ResizeWrapper(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
int depth )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget refW = NULL;
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(w);
|
|
Packit |
b099d7 |
Display *dpy = XtDisplay(w);
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
XtWidgetProc resize;
|
|
Packit |
b099d7 |
Cardinal leafDepth = GetResizeDepth(wc);
|
|
Packit |
b099d7 |
Cardinal depthDiff = leafDepth - depth;
|
|
Packit |
b099d7 |
Boolean call_navig_resize = FALSE;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Call _XmNavigResize() only once per resize event, so nested
|
|
Packit |
b099d7 |
* resize calls are completed before evaluating the status of
|
|
Packit |
b099d7 |
* the focus widget. Only check for lost focus in
|
|
Packit |
b099d7 |
* response to resize events from a Shell; otherwise
|
|
Packit |
b099d7 |
* _XmNavigResize may (prematurely) determine that the
|
|
Packit |
b099d7 |
* focus widget is no longer traversable before the
|
|
Packit |
b099d7 |
* new layout is complete.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (XtParent(w) && XtIsShell(XtParent(w)))
|
|
Packit |
b099d7 |
call_navig_resize = TRUE;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
while (depthDiff)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
depthDiff--;
|
|
Packit |
b099d7 |
wc = wc->core_class.superclass;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
GetRefW(dpy, resizeRefWContext, refW);
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
resize = wrapperData ? wrapperData->resize: NULL;
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (resize)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if ((refW == NULL) && (_XmDropSiteWrapperCandidate(w)))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
refW = w;
|
|
Packit |
b099d7 |
SetRefW(dpy, resizeRefWContext, refW);
|
|
Packit |
b099d7 |
XmDropSiteStartUpdate(refW);
|
|
Packit |
b099d7 |
(*resize)(w);
|
|
Packit |
b099d7 |
XmDropSiteEndUpdate(refW);
|
|
Packit |
b099d7 |
refW = NULL;
|
|
Packit |
b099d7 |
SetRefW(dpy, resizeRefWContext, refW);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
(*resize)(w);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (call_navig_resize)
|
|
Packit |
b099d7 |
_XmNavigResize( w);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*********************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* GeometryHandlerWrappers for composite
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*********************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper0(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper1(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper2(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 2);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper3(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 3);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper4(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 4);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper5(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 5);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper6(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 6);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper7(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 7);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper8(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 8);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper9(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 9);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper10(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 10);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper11(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 11);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper12(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return GeometryHandlerWrapper(w, desired, allowed, 12);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Used to be XmConst, but this was not linkking on Solaris */
|
|
Packit |
b099d7 |
static XtGeometryHandler geometryHandlerWrappers[] = {
|
|
Packit |
b099d7 |
GeometryHandlerWrapper0,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper1,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper2,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper3,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper4,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper5,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper6,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper7,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper8,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper9,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper10,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper11,
|
|
Packit |
b099d7 |
GeometryHandlerWrapper12
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Cardinal
|
|
Packit |
b099d7 |
GetGeometryHandlerDepth(
|
|
Packit |
b099d7 |
WidgetClass wc )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Cardinal i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
i = 0;
|
|
Packit |
b099d7 |
while (wc && wc != rectObjClass)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
i++;
|
|
Packit |
b099d7 |
wc = wc->core_class.superclass;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wc)
|
|
Packit |
b099d7 |
return i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return 0;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* GeometryHandlerWrapper
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryHandlerWrapper(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XtWidgetGeometry *desired,
|
|
Packit |
b099d7 |
XtWidgetGeometry *allowed,
|
|
Packit |
b099d7 |
int depth)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget refW = NULL;
|
|
Packit |
b099d7 |
XtGeometryResult result = XtGeometryNo;
|
|
Packit |
b099d7 |
Widget parent = XtParent(w);
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(parent);
|
|
Packit |
b099d7 |
Display *dpy = XtDisplay(w);
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
XtGeometryHandler geometry_manager;
|
|
Packit |
b099d7 |
Cardinal leafDepth = GetGeometryHandlerDepth(wc);
|
|
Packit |
b099d7 |
Cardinal depthDiff = leafDepth - depth;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
while (depthDiff)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
depthDiff--;
|
|
Packit |
b099d7 |
wc = wc->core_class.superclass;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
GetRefW(dpy, geoRefWContext, refW);
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
geometry_manager = wrapperData ? wrapperData->geometry_manager: NULL;
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (geometry_manager)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if ((refW == NULL) && (_XmDropSiteWrapperCandidate(w)))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
refW = w;
|
|
Packit |
b099d7 |
SetRefW(dpy, geoRefWContext, refW);
|
|
Packit |
b099d7 |
XmDropSiteStartUpdate(refW);
|
|
Packit |
b099d7 |
result = (*geometry_manager) (w, desired, allowed);
|
|
Packit |
b099d7 |
XmDropSiteEndUpdate(refW);
|
|
Packit |
b099d7 |
refW = NULL;
|
|
Packit |
b099d7 |
SetRefW(dpy, geoRefWContext, refW);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
result = (*geometry_manager) (w, desired, allowed);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return result;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* BaseClassPartInitialize
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static XmBaseClassExt *
|
|
Packit |
b099d7 |
BaseClassPartInitialize(
|
|
Packit |
b099d7 |
WidgetClass wc )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr, *scePtr;
|
|
Packit |
b099d7 |
Cardinal i;
|
|
Packit |
b099d7 |
Boolean inited;
|
|
Packit |
b099d7 |
XmWrapperData wcData, scData;
|
|
Packit |
b099d7 |
Boolean isBaseClass = IsBaseClass(wc);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* This routine is called out of the ClassPartInitRootWrapper. It
|
|
Packit |
b099d7 |
* needs to make sure that this is a Motif class and if it is,
|
|
Packit |
b099d7 |
* then to initialize it. We assume that the base classes always
|
|
Packit |
b099d7 |
* have a static initializer !!!
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
scePtr = _XmGetBaseClassExtPtr(wc->core_class.superclass, XmQmotif);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!isBaseClass &&
|
|
Packit |
b099d7 |
!isWrappedXtClass(wc) &&
|
|
Packit |
b099d7 |
(!scePtr || !(*scePtr)))
|
|
Packit |
b099d7 |
return NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((isBaseClass) || (scePtr && (*scePtr)))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (!(*wcePtr))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
inited = False;
|
|
Packit |
b099d7 |
*wcePtr = (XmBaseClassExt) XtCalloc(1, sizeof(XmBaseClassExtRec));
|
|
Packit |
b099d7 |
(*wcePtr)->classPartInitPrehook = XmInheritClassPartInitPrehook;
|
|
Packit |
b099d7 |
(*wcePtr)->classPartInitPosthook = XmInheritClassPartInitPosthook;
|
|
Packit |
b099d7 |
(*wcePtr)->initializePrehook = XmInheritInitializePrehook;
|
|
Packit |
b099d7 |
(*wcePtr)->setValuesPrehook = XmInheritSetValuesPrehook;
|
|
Packit |
b099d7 |
(*wcePtr)->getValuesPrehook = XmInheritGetValuesPrehook;
|
|
Packit |
b099d7 |
(*wcePtr)->initializePosthook = XmInheritInitializePosthook;
|
|
Packit |
b099d7 |
(*wcePtr)->setValuesPosthook = XmInheritSetValuesPosthook;
|
|
Packit |
b099d7 |
(*wcePtr)->getValuesPosthook = XmInheritGetValuesPosthook;
|
|
Packit |
b099d7 |
(*wcePtr)->secondaryObjectClass = XmInheritClass;
|
|
Packit |
b099d7 |
(*wcePtr)->secondaryObjectCreate = XmInheritSecObjectCreate;
|
|
Packit |
b099d7 |
(*wcePtr)->getSecResData = XmInheritGetSecResData;
|
|
Packit |
b099d7 |
(*wcePtr)->widgetNavigable = XmInheritWidgetNavigable;
|
|
Packit |
b099d7 |
(*wcePtr)->focusChange = XmInheritFocusChange;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
inited = True;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* this should get done by the static initializers */
|
|
Packit |
b099d7 |
for (i = 0; i < 32; i++)
|
|
Packit |
b099d7 |
(*wcePtr)->flags[i] = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (scePtr && *scePtr)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (!inited)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
(*wcePtr)->next_extension = NULL;
|
|
Packit |
b099d7 |
(*wcePtr)->record_type = (*scePtr)->record_type;
|
|
Packit |
b099d7 |
(*wcePtr)->version = (*scePtr)->version;
|
|
Packit |
b099d7 |
(*wcePtr)->record_size = (*scePtr)->record_size;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
if ((*wcePtr)->classPartInitPrehook == XmInheritClassPartInitPrehook)
|
|
Packit |
b099d7 |
(*wcePtr)->classPartInitPrehook = (*scePtr)->classPartInitPrehook;
|
|
Packit |
b099d7 |
if ((*wcePtr)->classPartInitPosthook == XmInheritClassPartInitPosthook)
|
|
Packit |
b099d7 |
(*wcePtr)->classPartInitPosthook = (*scePtr)->classPartInitPosthook;
|
|
Packit |
b099d7 |
if ((*wcePtr)->initializePrehook == XmInheritInitializePrehook)
|
|
Packit |
b099d7 |
(*wcePtr)->initializePrehook = (*scePtr)->initializePrehook;
|
|
Packit |
b099d7 |
if ((*wcePtr)->setValuesPrehook == XmInheritSetValuesPrehook)
|
|
Packit |
b099d7 |
(*wcePtr)->setValuesPrehook = (*scePtr)->setValuesPrehook;
|
|
Packit |
b099d7 |
if ((*wcePtr)->getValuesPrehook == XmInheritGetValuesPrehook)
|
|
Packit |
b099d7 |
(*wcePtr)->getValuesPrehook = (*scePtr)->getValuesPrehook;
|
|
Packit |
b099d7 |
if ((*wcePtr)->initializePosthook == XmInheritInitializePosthook)
|
|
Packit |
b099d7 |
(*wcePtr)->initializePosthook = (*scePtr)->initializePosthook;
|
|
Packit |
b099d7 |
if ((*wcePtr)->setValuesPosthook == XmInheritSetValuesPosthook)
|
|
Packit |
b099d7 |
(*wcePtr)->setValuesPosthook = (*scePtr)->setValuesPosthook;
|
|
Packit |
b099d7 |
if ((*wcePtr)->getValuesPosthook == XmInheritGetValuesPosthook)
|
|
Packit |
b099d7 |
(*wcePtr)->getValuesPosthook = (*scePtr)->getValuesPosthook;
|
|
Packit |
b099d7 |
if ((*wcePtr)->secondaryObjectClass == XmInheritClass)
|
|
Packit |
b099d7 |
(*wcePtr)->secondaryObjectClass = (*scePtr)->secondaryObjectClass;
|
|
Packit |
b099d7 |
if ((*wcePtr)->secondaryObjectCreate == XmInheritSecObjectCreate)
|
|
Packit |
b099d7 |
(*wcePtr)->secondaryObjectCreate = (*scePtr)->secondaryObjectCreate;
|
|
Packit |
b099d7 |
if ((*wcePtr)->getSecResData == XmInheritGetSecResData)
|
|
Packit |
b099d7 |
(*wcePtr)->getSecResData = (*scePtr)->getSecResData;
|
|
Packit |
b099d7 |
if ((*wcePtr)->widgetNavigable == XmInheritWidgetNavigable)
|
|
Packit |
b099d7 |
(*wcePtr)->widgetNavigable = (*scePtr)->widgetNavigable;
|
|
Packit |
b099d7 |
if ((*wcePtr)->focusChange == XmInheritFocusChange)
|
|
Packit |
b099d7 |
(*wcePtr)->focusChange = (*scePtr)->focusChange;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#ifdef DEBUG
|
|
Packit |
b099d7 |
else if (!IsBaseClass(wc))
|
|
Packit |
b099d7 |
XtError("class must have non-null superclass extension");
|
|
Packit |
b099d7 |
#endif /* DEBUG */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* If this class has a secondary object class and that
|
|
Packit |
b099d7 |
* class does not have it's own extension (or has not
|
|
Packit |
b099d7 |
* been class inited because its a pseudo class) then
|
|
Packit |
b099d7 |
* we will give a dummy pointer so that fast subclass
|
|
Packit |
b099d7 |
* checking will not fail for the meta classes
|
|
Packit |
b099d7 |
* (gadget, manager, etc...)
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass sec = (*wcePtr)->secondaryObjectClass;
|
|
Packit |
b099d7 |
static XmBaseClassExtRec xmExtExtensionRec = {
|
|
Packit |
b099d7 |
NULL, /* Next extension */
|
|
Packit |
b099d7 |
NULLQUARK, /* record type XmQmotif */
|
|
Packit |
b099d7 |
XmBaseClassExtVersion, /* version */
|
|
Packit |
b099d7 |
sizeof(XmBaseClassExtRec), /* size */
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (xmExtExtensionRec.record_type == NULLQUARK)
|
|
Packit |
b099d7 |
xmExtExtensionRec.record_type = XmQmotif;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (sec && !sec->core_class.extension)
|
|
Packit |
b099d7 |
sec->core_class.extension = (XtPointer)&xmExtExtensionRec;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wcData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
scData = GetWrapperData(wc->core_class.superclass);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((wc == vendorShellWidgetClass) ||
|
|
Packit |
b099d7 |
_XmIsSubclassOf(wc, vendorShellWidgetClass))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* Wrap Realize */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* check if this widget was using XtInherit and got the wrapper
|
|
Packit |
b099d7 |
* from the superclass
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (wc->core_class.realize == XtInheritRealize)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
wcData->realize = scData->realize;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* It has declared it's own realize routine so save it
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
wcData->realize = wc->core_class.realize;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
wc->core_class.realize = realizeWrappers[GetRealizeDepth(wc)];
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((wc == rectObjClass) ||
|
|
Packit |
b099d7 |
_XmIsSubclassOf(wc, rectObjClass))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* Wrap resize */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* check if this widget was using XtInherit and got the wrapper
|
|
Packit |
b099d7 |
* from the superclass
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (wc->core_class.resize == XtInheritResize)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
wcData->resize = scData->resize;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* It has declared it's own resize routine so save it
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
wcData->resize = wc->core_class.resize;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
wc->core_class.resize = resizeWrappers[GetResizeDepth(wc)];
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((wc == compositeWidgetClass) ||
|
|
Packit |
b099d7 |
_XmIsSubclassOf(wc, compositeWidgetClass))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* Wrap GeometryManager */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* check if this widget was using XtInherit and got the wrapper
|
|
Packit |
b099d7 |
* from the superclass
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (((CompositeWidgetClass) wc)->composite_class.geometry_manager
|
|
Packit |
b099d7 |
== XtInheritGeometryManager)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
wcData->geometry_manager = scData->geometry_manager;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* It has declared it's own resize routine so save it
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
wcData->geometry_manager = ((CompositeWidgetClass) wc)
|
|
Packit |
b099d7 |
->composite_class.geometry_manager;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
((CompositeWidgetClass) wc)->composite_class.geometry_manager =
|
|
Packit |
b099d7 |
(XtGeometryHandler)
|
|
Packit |
b099d7 |
geometryHandlerWrappers[GetGeometryHandlerDepth(wc)];
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return wcePtr;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* This function replaces the objectClass classPartInit slot and is
|
|
Packit |
b099d7 |
* called at the start of the first XtCreate invocation.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ClassPartInitRootWrapper(
|
|
Packit |
b099d7 |
WidgetClass wc )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtWidgetClassProc *leafFuncPtr;
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wcePtr = BaseClassPartInitialize(wc);
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* check that it's a class that we know about
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (wcePtr && *wcePtr)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if ((*wcePtr)->classPartInitPrehook)
|
|
Packit |
b099d7 |
(*((*wcePtr)->classPartInitPrehook)) (wc);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* If we have a prehook, then envelop the leaf class function
|
|
Packit |
b099d7 |
* that whould be called last.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ((*wcePtr)->classPartInitPosthook)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
leafFuncPtr = (XtWidgetClassProc *)
|
|
Packit |
b099d7 |
&(wc->core_class.class_part_initialize);
|
|
Packit |
b099d7 |
wrapperData->classPartInitLeaf = *leafFuncPtr;
|
|
Packit |
b099d7 |
*leafFuncPtr = ClassPartInitLeafWrapper;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (objectClassWrapper.classPartInit)
|
|
Packit |
b099d7 |
(* objectClassWrapper.classPartInit) (wc);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ClassPartInitLeafWrapper(
|
|
Packit |
b099d7 |
WidgetClass wc )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtWidgetClassProc *leafFuncPtr;
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (*wcePtr && (*wcePtr)->classPartInitPosthook)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
leafFuncPtr = (XtWidgetClassProc *)
|
|
Packit |
b099d7 |
&(wc->core_class.class_part_initialize);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wrapperData->classPartInitLeaf)
|
|
Packit |
b099d7 |
(* wrapperData->classPartInitLeaf) (wc);
|
|
Packit |
b099d7 |
if ((*wcePtr)->classPartInitPosthook)
|
|
Packit |
b099d7 |
(*((*wcePtr)->classPartInitPosthook)) (wc);
|
|
Packit |
b099d7 |
#ifdef DEBUG
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
XmeWarning(NULL, "there should be a non-null hook for a leaf wrapper");
|
|
Packit |
b099d7 |
#endif /* DEBUG */
|
|
Packit |
b099d7 |
*leafFuncPtr = wrapperData->classPartInitLeaf;
|
|
Packit |
b099d7 |
wrapperData->classPartInitLeaf = NULL;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
is_constraint_subclass(WidgetClass cls)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass sc;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for (sc = cls; sc != NULL; sc = sc->core_class.superclass)
|
|
Packit |
b099d7 |
if (sc == (WidgetClass) &constraintClassRec)
|
|
Packit |
b099d7 |
return True;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return False;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmInitializeExtensions( void )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
static Boolean firstTime = True;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (firstTime)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmQmotif = XrmPermStringToQuark("OSF_MOTIF");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
objectClassWrapper.initialize =
|
|
Packit |
b099d7 |
objectClass->core_class.initialize;
|
|
Packit |
b099d7 |
objectClassWrapper.setValues =
|
|
Packit |
b099d7 |
objectClass->core_class.set_values;
|
|
Packit |
b099d7 |
objectClassWrapper.getValues =
|
|
Packit |
b099d7 |
objectClass->core_class.get_values_hook;
|
|
Packit |
b099d7 |
objectClassWrapper.classPartInit =
|
|
Packit |
b099d7 |
objectClass->core_class.class_part_initialize;
|
|
Packit |
b099d7 |
objectClass->core_class.class_part_initialize =
|
|
Packit |
b099d7 |
ClassPartInitRootWrapper;
|
|
Packit |
b099d7 |
objectClass->core_class.initialize =
|
|
Packit |
b099d7 |
InitializeRootWrapper;
|
|
Packit |
b099d7 |
objectClass->core_class.set_values =
|
|
Packit |
b099d7 |
SetValuesRootWrapper;
|
|
Packit |
b099d7 |
objectClass->core_class.get_values_hook =
|
|
Packit |
b099d7 |
GetValuesRootWrapper;
|
|
Packit |
b099d7 |
firstTime = False;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
resizeRefWContext = XUniqueContext();
|
|
Packit |
b099d7 |
geoRefWContext = XUniqueContext();
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Cardinal
|
|
Packit |
b099d7 |
_XmSecondaryResourceData(
|
|
Packit |
b099d7 |
XmBaseClassExt bcePtr,
|
|
Packit |
b099d7 |
XmSecondaryResourceData **secResDataRtn,
|
|
Packit |
b099d7 |
XtPointer client_data,
|
|
Packit |
b099d7 |
String name,
|
|
Packit |
b099d7 |
String class_name,
|
|
Packit |
b099d7 |
XmResourceBaseProc basefunctionpointer )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass secObjClass;
|
|
Packit |
b099d7 |
XmSecondaryResourceData secResData, *sd;
|
|
Packit |
b099d7 |
Cardinal count = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (bcePtr)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
secObjClass = ( (bcePtr)->secondaryObjectClass);
|
|
Packit |
b099d7 |
if (secObjClass)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
secResData = XtNew(XmSecondaryResourceDataRec);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmTransformSubResources(secObjClass->core_class.resources,
|
|
Packit |
b099d7 |
secObjClass->core_class.num_resources,
|
|
Packit |
b099d7 |
&(secResData->resources),
|
|
Packit |
b099d7 |
&(secResData->num_resources));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
secResData->name = name;
|
|
Packit |
b099d7 |
secResData->res_class = class_name;
|
|
Packit |
b099d7 |
secResData->client_data = client_data;
|
|
Packit |
b099d7 |
secResData->base_proc = basefunctionpointer;
|
|
Packit |
b099d7 |
sd = XtNew(XmSecondaryResourceData);
|
|
Packit |
b099d7 |
*sd = secResData;
|
|
Packit |
b099d7 |
*secResDataRtn = sd;
|
|
Packit |
b099d7 |
count++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return count;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* This function makes assumptions about what the Intrinsics is
|
|
Packit |
b099d7 |
* doing with the resource lists. It is based on the X11R5 version
|
|
Packit |
b099d7 |
* of the Intrinsics. It is used as a work around for a bug in
|
|
Packit |
b099d7 |
* the Intrinsics that deals with recompiling already compiled resource
|
|
Packit |
b099d7 |
* lists. When that bug is fixed, this function should be removed.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
static XtResourceList*
|
|
Packit |
b099d7 |
CreateIndirectionTable(XtResourceList resources,
|
|
Packit |
b099d7 |
Cardinal num_resources)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
register int i;
|
|
Packit |
b099d7 |
XtResourceList* table;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
table = (XtResourceList*)XtMalloc(num_resources * sizeof(XtResourceList));
|
|
Packit |
b099d7 |
for (i = 0; i < num_resources; i++)
|
|
Packit |
b099d7 |
table[i] = (XtResourceList)(&(resources[i]));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return table;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* The statement in this function calls CreateIndirectionTable() which
|
|
Packit |
b099d7 |
* is scheduled for removal (see comment in function above).
|
|
Packit |
b099d7 |
* It is used as a work around for an X11R5 Intrinsics bug. When the
|
|
Packit |
b099d7 |
* bug is fixed, change to the assignement statement so the
|
|
Packit |
b099d7 |
* constraint_class.reources is assigned comp_resources. Next,
|
|
Packit |
b099d7 |
* change the class_inited field of the core_class record to False.
|
|
Packit |
b099d7 |
* Then remove the check for class_inited, in the conditional statement
|
|
Packit |
b099d7 |
* which calls XtInitializeWidgetClass() and move the call to
|
|
Packit |
b099d7 |
* XtInitializeWidgetClass() to just above the call to
|
|
Packit |
b099d7 |
* XtGetConstraintResourceList(). Then remove the call to
|
|
Packit |
b099d7 |
* XtFree() and the last two assignment statements.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTransformSubResources(
|
|
Packit |
b099d7 |
XtResourceList comp_resources,
|
|
Packit |
b099d7 |
Cardinal num_comp_resources,
|
|
Packit |
b099d7 |
XtResourceList *resources,
|
|
Packit |
b099d7 |
Cardinal *num_resources)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
static ConstraintClassRec shadowObjectClassRec = {
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* superclass */ (WidgetClass) &constraintClassRec,
|
|
Packit |
b099d7 |
/* class_name */ "Shadow",
|
|
Packit |
b099d7 |
/* widget_size */ sizeof(ConstraintRec),
|
|
Packit |
b099d7 |
/* class_initialize */ NULL,
|
|
Packit |
b099d7 |
/* class_part_initialize*/ NULL,
|
|
Packit |
b099d7 |
/* class_inited */ FALSE,
|
|
Packit |
b099d7 |
/* initialize */ NULL,
|
|
Packit |
b099d7 |
/* initialize_hook */ NULL,
|
|
Packit |
b099d7 |
/* realize */ XtInheritRealize,
|
|
Packit |
b099d7 |
/* actions */ NULL,
|
|
Packit |
b099d7 |
/* num_actions */ 0,
|
|
Packit |
b099d7 |
/* resources */ NULL,
|
|
Packit |
b099d7 |
/* num_resources */ 0,
|
|
Packit |
b099d7 |
/* xrm_class */ NULLQUARK,
|
|
Packit |
b099d7 |
/* compress_motion */ FALSE,
|
|
Packit |
b099d7 |
/* compress_exposure */ TRUE,
|
|
Packit |
b099d7 |
/* compress_enterleave */ FALSE,
|
|
Packit |
b099d7 |
/* visible_interest */ FALSE,
|
|
Packit |
b099d7 |
/* destroy */ NULL,
|
|
Packit |
b099d7 |
/* resize */ NULL,
|
|
Packit |
b099d7 |
/* expose */ NULL,
|
|
Packit |
b099d7 |
/* set_values */ NULL,
|
|
Packit |
b099d7 |
/* set_values_hook */ NULL,
|
|
Packit |
b099d7 |
/* set_values_almost */ XtInheritSetValuesAlmost,
|
|
Packit |
b099d7 |
/* get_values_hook */ NULL,
|
|
Packit |
b099d7 |
/* accept_focus */ NULL,
|
|
Packit |
b099d7 |
/* version */ XtVersion,
|
|
Packit |
b099d7 |
/* callback_offsets */ NULL,
|
|
Packit |
b099d7 |
/* tm_table */ NULL,
|
|
Packit |
b099d7 |
/* query_geometry */ NULL,
|
|
Packit |
b099d7 |
/* display_accelerator */ NULL,
|
|
Packit |
b099d7 |
/* extension */ NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ /**** CompositePart *****/
|
|
Packit |
b099d7 |
/* geometry_handler */ NULL,
|
|
Packit |
b099d7 |
/* change_managed */ NULL,
|
|
Packit |
b099d7 |
/* insert_child */ XtInheritInsertChild,
|
|
Packit |
b099d7 |
/* delete_child */ XtInheritDeleteChild,
|
|
Packit |
b099d7 |
/* extension */ NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ /**** ConstraintPart ****/
|
|
Packit |
b099d7 |
/* resources */ NULL,
|
|
Packit |
b099d7 |
/* num_resources */ 0,
|
|
Packit |
b099d7 |
/* constraint_size */ 0,
|
|
Packit |
b099d7 |
/* initialize */ NULL,
|
|
Packit |
b099d7 |
/* destroy */ NULL,
|
|
Packit |
b099d7 |
/* set_values */ NULL,
|
|
Packit |
b099d7 |
/* extension */ NULL
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (((int)comp_resources[0].resource_offset) >= 0)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtResourceList tmp_resources;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
tmp_resources = (XtResourceList)
|
|
Packit |
b099d7 |
XtMalloc(sizeof(XtResource) * num_comp_resources);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
memcpy(tmp_resources, comp_resources,
|
|
Packit |
b099d7 |
sizeof(XtResource) * num_comp_resources);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*resources = tmp_resources;
|
|
Packit |
b099d7 |
*num_resources = num_comp_resources;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (!shadowObjectClassRec.core_class.class_inited)
|
|
Packit |
b099d7 |
XtInitializeWidgetClass((WidgetClass) &shadowObjectClassRec);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* This next statement is marked for change */
|
|
Packit |
b099d7 |
shadowObjectClassRec.constraint_class.resources = (XtResourceList)
|
|
Packit |
b099d7 |
CreateIndirectionTable(comp_resources, num_comp_resources);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
shadowObjectClassRec.constraint_class.num_resources = num_comp_resources;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtGetConstraintResourceList((WidgetClass) &shadowObjectClassRec,
|
|
Packit |
b099d7 |
resources, num_resources);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (shadowObjectClassRec.constraint_class.resources)
|
|
Packit |
b099d7 |
XtFree((char *) shadowObjectClassRec.constraint_class.resources);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
shadowObjectClassRec.constraint_class.resources = NULL;
|
|
Packit |
b099d7 |
shadowObjectClassRec.constraint_class.num_resources = 0;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtInitProc InitializeLeafWrappers[] = {
|
|
Packit |
b099d7 |
InitializeLeafWrapper0,
|
|
Packit |
b099d7 |
InitializeLeafWrapper1,
|
|
Packit |
b099d7 |
InitializeLeafWrapper2,
|
|
Packit |
b099d7 |
InitializeLeafWrapper3,
|
|
Packit |
b099d7 |
InitializeLeafWrapper4,
|
|
Packit |
b099d7 |
InitializeLeafWrapper5,
|
|
Packit |
b099d7 |
InitializeLeafWrapper6,
|
|
Packit |
b099d7 |
InitializeLeafWrapper7,
|
|
Packit |
b099d7 |
InitializeLeafWrapper8,
|
|
Packit |
b099d7 |
InitializeLeafWrapper9
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
static XtInitProc CInitializeLeafWrappers[] = {
|
|
Packit |
b099d7 |
CInitializeLeafWrapper0,
|
|
Packit |
b099d7 |
CInitializeLeafWrapper1,
|
|
Packit |
b099d7 |
CInitializeLeafWrapper2,
|
|
Packit |
b099d7 |
CInitializeLeafWrapper3,
|
|
Packit |
b099d7 |
CInitializeLeafWrapper4,
|
|
Packit |
b099d7 |
CInitializeLeafWrapper5,
|
|
Packit |
b099d7 |
CInitializeLeafWrapper6,
|
|
Packit |
b099d7 |
CInitializeLeafWrapper7,
|
|
Packit |
b099d7 |
CInitializeLeafWrapper8,
|
|
Packit |
b099d7 |
CInitializeLeafWrapper9
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* This function replaces the objectClass initialize slot and is
|
|
Packit |
b099d7 |
* called at the start of every XtCreate invocation.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeRootWrapper(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(new_w);
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wcePtr && *wcePtr) {
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->initializePrehook)
|
|
Packit |
b099d7 |
(*((*wcePtr)->initializePrehook))(req, new_w, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->initializePosthook) {
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!XtIsShell(new_w) && XtParent(new_w)
|
|
Packit |
b099d7 |
&& XtIsConstraint(XtParent(new_w))) {
|
|
Packit |
b099d7 |
ConstraintWidgetClass cwc;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
cwc = (ConstraintWidgetClass) XtClass(XtParent(new_w));
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData((WidgetClass) cwc);
|
|
Packit |
b099d7 |
if (wrapperData->constraintInitializeLeafCount ==0)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
wrapperData->constraintInitializeLeaf =
|
|
Packit |
b099d7 |
cwc->constraint_class.initialize;
|
|
Packit |
b099d7 |
cwc->constraint_class.initialize =
|
|
Packit |
b099d7 |
CInitializeLeafWrappers[
|
|
Packit |
b099d7 |
GetDepth((WidgetClass) cwc)];
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
(wrapperData->constraintInitializeLeafCount)++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
if (wrapperData->initializeLeafCount ==0) {
|
|
Packit |
b099d7 |
wrapperData->initializeLeaf =
|
|
Packit |
b099d7 |
wc->core_class.initialize;
|
|
Packit |
b099d7 |
wc->core_class.initialize =
|
|
Packit |
b099d7 |
InitializeLeafWrappers[
|
|
Packit |
b099d7 |
GetDepth(wc)];
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
(wrapperData->initializeLeafCount)++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (objectClassWrapper.initialize)
|
|
Packit |
b099d7 |
(*objectClassWrapper.initialize)(req, new_w,args, num_args);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(new_w);
|
|
Packit |
b099d7 |
XtInitProc init_proc = NULL;
|
|
Packit |
b099d7 |
XtInitProc post_proc = NULL;
|
|
Packit |
b099d7 |
int leafDepth = GetDepth(wc);
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (leafDepth == depth) { /* Correct depth */
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!XtIsShell(new_w) && XtParent(new_w) &&
|
|
Packit |
b099d7 |
XtIsConstraint(XtParent(new_w))) {
|
|
Packit |
b099d7 |
init_proc = wrapperData->initializeLeaf;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
/* We're home ! */
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
init_proc = wrapperData->initializeLeaf;
|
|
Packit |
b099d7 |
post_proc = (*wcePtr)->initializePosthook;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
if (post_proc) {
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
if ((--(wrapperData->initializeLeafCount)) == 0)
|
|
Packit |
b099d7 |
wc->core_class.initialize =
|
|
Packit |
b099d7 |
wrapperData->initializeLeaf;
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
int depthDiff = leafDepth - depth;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for ( ; depthDiff;
|
|
Packit |
b099d7 |
depthDiff--, wc = wc->core_class.superclass)
|
|
Packit |
b099d7 |
{};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
init_proc = wrapperData->initializeLeaf;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (init_proc)
|
|
Packit |
b099d7 |
(*init_proc)(req, new_w, args, num_args);
|
|
Packit |
b099d7 |
if (post_proc)
|
|
Packit |
b099d7 |
(*post_proc)(req, new_w, args, num_args);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(new_w);
|
|
Packit |
b099d7 |
ConstraintWidgetClass cwc = (ConstraintWidgetClass)
|
|
Packit |
b099d7 |
XtClass(XtParent(new_w));
|
|
Packit |
b099d7 |
XtInitProc init_proc = NULL;
|
|
Packit |
b099d7 |
XtInitProc post_proc = NULL;
|
|
Packit |
b099d7 |
int leafDepth = GetDepth((WidgetClass) cwc);
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (leafDepth == depth) {
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData((WidgetClass) cwc);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
init_proc = wrapperData->constraintInitializeLeaf;
|
|
Packit |
b099d7 |
post_proc = (*wcePtr)->initializePosthook;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
if (post_proc) {
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
if ((--(wrapperData->constraintInitializeLeafCount)) ==0)
|
|
Packit |
b099d7 |
cwc->constraint_class.initialize =
|
|
Packit |
b099d7 |
wrapperData->constraintInitializeLeaf;
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
int depthDiff = leafDepth - depth;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for ( ; depthDiff;
|
|
Packit |
b099d7 |
depthDiff--, cwc = (ConstraintWidgetClass)
|
|
Packit |
b099d7 |
cwc->core_class.superclass)
|
|
Packit |
b099d7 |
{};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData((WidgetClass) cwc);
|
|
Packit |
b099d7 |
init_proc = wrapperData->constraintInitializeLeaf;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (init_proc)
|
|
Packit |
b099d7 |
(*init_proc)(req, new_w, args, num_args);
|
|
Packit |
b099d7 |
if (post_proc)
|
|
Packit |
b099d7 |
(*post_proc)(req, new_w, args, num_args);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper0(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper1(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper2(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 2);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper3(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 3);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper4(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 4);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper5(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 5);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper6(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 6);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper7(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 7);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper8(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 8);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InitializeLeafWrapper9(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
InitializeLeafWrapper(req, new_w, args, num_args, 9);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper0(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper1(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper2(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,2);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper3(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,3);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper4(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,4);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper5(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,5);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper6(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,6);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper7(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,7);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper8(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,8);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CInitializeLeafWrapper9(
|
|
Packit |
b099d7 |
Widget req, Widget new_w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
CInitializeLeafWrapper(req, new_w, args, num_args,9);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtSetValuesFunc SetValuesLeafWrappers[] = {
|
|
Packit |
b099d7 |
SetValuesLeafWrapper0,
|
|
Packit |
b099d7 |
SetValuesLeafWrapper1,
|
|
Packit |
b099d7 |
SetValuesLeafWrapper2,
|
|
Packit |
b099d7 |
SetValuesLeafWrapper3,
|
|
Packit |
b099d7 |
SetValuesLeafWrapper4,
|
|
Packit |
b099d7 |
SetValuesLeafWrapper5,
|
|
Packit |
b099d7 |
SetValuesLeafWrapper6,
|
|
Packit |
b099d7 |
SetValuesLeafWrapper7,
|
|
Packit |
b099d7 |
SetValuesLeafWrapper8,
|
|
Packit |
b099d7 |
SetValuesLeafWrapper9
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
static XtSetValuesFunc CSetValuesLeafWrappers[] = {
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper0,
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper1,
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper2,
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper3,
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper4,
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper5,
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper6,
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper7,
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper8,
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper9
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* This function replaces the objectClass set_values slot and is
|
|
Packit |
b099d7 |
* called at the start of every XtSetValues invocation.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesRootWrapper(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(new_w);
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr;
|
|
Packit |
b099d7 |
Boolean returnVal = False;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wcePtr && *wcePtr) {
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->setValuesPrehook)
|
|
Packit |
b099d7 |
returnVal |= (*((*wcePtr)->setValuesPrehook))
|
|
Packit |
b099d7 |
(current, req, new_w, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->setValuesPosthook) {
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!XtIsShell(new_w) && XtParent(new_w)
|
|
Packit |
b099d7 |
&& XtIsConstraint(XtParent(new_w))) {
|
|
Packit |
b099d7 |
ConstraintWidgetClass cwc;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
cwc = (ConstraintWidgetClass) XtClass(XtParent(new_w));
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData((WidgetClass) cwc);
|
|
Packit |
b099d7 |
if (wrapperData->constraintSetValuesLeafCount ==0)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
wrapperData->constraintSetValuesLeaf =
|
|
Packit |
b099d7 |
cwc->constraint_class.set_values;
|
|
Packit |
b099d7 |
cwc->constraint_class.set_values =
|
|
Packit |
b099d7 |
CSetValuesLeafWrappers[
|
|
Packit |
b099d7 |
GetDepth((WidgetClass) cwc)];
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
(wrapperData->constraintSetValuesLeafCount)++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
if (wrapperData->setValuesLeafCount ==0) {
|
|
Packit |
b099d7 |
wrapperData->setValuesLeaf =
|
|
Packit |
b099d7 |
wc->core_class.set_values;
|
|
Packit |
b099d7 |
wc->core_class.set_values =
|
|
Packit |
b099d7 |
SetValuesLeafWrappers[
|
|
Packit |
b099d7 |
GetDepth(wc)];
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
(wrapperData->setValuesLeafCount)++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (objectClassWrapper.setValues)
|
|
Packit |
b099d7 |
returnVal |= (*objectClassWrapper.setValues)
|
|
Packit |
b099d7 |
(current, req, new_w, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return returnVal;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(new_w);
|
|
Packit |
b099d7 |
XtSetValuesFunc setvalues_proc = NULL;
|
|
Packit |
b099d7 |
XtSetValuesFunc post_proc = NULL;
|
|
Packit |
b099d7 |
Boolean returnVal = False;
|
|
Packit |
b099d7 |
int leafDepth = GetDepth(wc);
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (leafDepth == depth) { /* Correct depth */
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!XtIsShell(new_w) && XtParent(new_w) &&
|
|
Packit |
b099d7 |
XtIsConstraint(XtParent(new_w))) {
|
|
Packit |
b099d7 |
setvalues_proc = wrapperData->setValuesLeaf;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
/* We're home ! */
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
setvalues_proc = wrapperData->setValuesLeaf;
|
|
Packit |
b099d7 |
post_proc = (*wcePtr)->setValuesPosthook;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
if (post_proc) {
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
if ((--(wrapperData->setValuesLeafCount)) ==0)
|
|
Packit |
b099d7 |
wc->core_class.set_values =
|
|
Packit |
b099d7 |
wrapperData->setValuesLeaf;
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
int depthDiff = leafDepth - depth;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for ( ; depthDiff;
|
|
Packit |
b099d7 |
depthDiff--, wc = wc->core_class.superclass)
|
|
Packit |
b099d7 |
{};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
setvalues_proc = wrapperData->setValuesLeaf;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (setvalues_proc)
|
|
Packit |
b099d7 |
returnVal |= (*setvalues_proc)
|
|
Packit |
b099d7 |
(current, req, new_w, args, num_args);
|
|
Packit |
b099d7 |
if (post_proc)
|
|
Packit |
b099d7 |
returnVal |= (*post_proc)
|
|
Packit |
b099d7 |
(current, req, new_w, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return returnVal;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(new_w);
|
|
Packit |
b099d7 |
ConstraintWidgetClass cwc = (ConstraintWidgetClass)
|
|
Packit |
b099d7 |
XtClass(XtParent(new_w));
|
|
Packit |
b099d7 |
XtSetValuesFunc setvalues_proc = NULL;
|
|
Packit |
b099d7 |
XtSetValuesFunc post_proc = NULL;
|
|
Packit |
b099d7 |
Boolean returnVal = False;
|
|
Packit |
b099d7 |
int leafDepth = GetDepth((WidgetClass) cwc);
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (leafDepth == depth) {
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData((WidgetClass) cwc);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
setvalues_proc = wrapperData->constraintSetValuesLeaf;
|
|
Packit |
b099d7 |
post_proc = (*wcePtr)->setValuesPosthook;
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
if (post_proc) {
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
if ((--(wrapperData->constraintSetValuesLeafCount)) ==0)
|
|
Packit |
b099d7 |
cwc->constraint_class.set_values =
|
|
Packit |
b099d7 |
wrapperData->constraintSetValuesLeaf;
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
int depthDiff = leafDepth - depth;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for ( ; depthDiff;
|
|
Packit |
b099d7 |
depthDiff--, cwc = (ConstraintWidgetClass)
|
|
Packit |
b099d7 |
cwc->core_class.superclass)
|
|
Packit |
b099d7 |
{};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData((WidgetClass) cwc);
|
|
Packit |
b099d7 |
setvalues_proc = wrapperData->constraintSetValuesLeaf;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (setvalues_proc)
|
|
Packit |
b099d7 |
returnVal |= (*setvalues_proc)
|
|
Packit |
b099d7 |
(current, req, new_w, args, num_args);
|
|
Packit |
b099d7 |
if (post_proc)
|
|
Packit |
b099d7 |
returnVal |= (*post_proc)
|
|
Packit |
b099d7 |
(current, req, new_w, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return returnVal;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper0(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper1(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper2(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 2);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper3(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 3);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper4(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 4);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper5(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 5);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper6(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 6);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper7(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 7);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper8(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 8);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValuesLeafWrapper9(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return SetValuesLeafWrapper(current, req, new_w, args, num_args, 9);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper0(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper1(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper2(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 2);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper3(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 3);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper4(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 4);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper5(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 5);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper6(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 6);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper7(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 7);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper8(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 8);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
CSetValuesLeafWrapper9(
|
|
Packit |
b099d7 |
Widget current, Widget req, Widget new_w, ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return CSetValuesLeafWrapper(current, req, new_w, args, num_args, 9);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtArgsProc GetValuesLeafWrappers[] = {
|
|
Packit |
b099d7 |
GetValuesLeafWrapper0,
|
|
Packit |
b099d7 |
GetValuesLeafWrapper1,
|
|
Packit |
b099d7 |
GetValuesLeafWrapper2,
|
|
Packit |
b099d7 |
GetValuesLeafWrapper3,
|
|
Packit |
b099d7 |
GetValuesLeafWrapper4,
|
|
Packit |
b099d7 |
GetValuesLeafWrapper5,
|
|
Packit |
b099d7 |
GetValuesLeafWrapper6,
|
|
Packit |
b099d7 |
GetValuesLeafWrapper7,
|
|
Packit |
b099d7 |
GetValuesLeafWrapper8,
|
|
Packit |
b099d7 |
GetValuesLeafWrapper9
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* This function replaces the objectClass get_values slot and is
|
|
Packit |
b099d7 |
* called at the start of every XtGetValues invocation.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesRootWrapper(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(new_w);
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wcePtr && *wcePtr) {
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->getValuesPrehook)
|
|
Packit |
b099d7 |
(*((*wcePtr)->getValuesPrehook))(new_w, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->getValuesPosthook) {
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
if (wrapperData->getValuesLeafCount == 0) {
|
|
Packit |
b099d7 |
wrapperData->getValuesLeaf =
|
|
Packit |
b099d7 |
wc->core_class.get_values_hook;
|
|
Packit |
b099d7 |
wc->core_class.get_values_hook =
|
|
Packit |
b099d7 |
GetValuesLeafWrappers[GetDepth(wc)];
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
(wrapperData->getValuesLeafCount)++;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
if (objectClassWrapper.getValues)
|
|
Packit |
b099d7 |
(*objectClassWrapper.getValues) (new_w, args, num_args);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args,
|
|
Packit |
b099d7 |
int depth)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
WidgetClass wc = XtClass(new_w);
|
|
Packit |
b099d7 |
XtArgsProc getvalues_proc = NULL;
|
|
Packit |
b099d7 |
XtArgsProc post_proc = NULL;
|
|
Packit |
b099d7 |
int leafDepth = GetDepth(wc);
|
|
Packit |
b099d7 |
XmWrapperData wrapperData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (leafDepth == depth) { /* Correct depth */
|
|
Packit |
b099d7 |
XmBaseClassExt *wcePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
getvalues_proc = wrapperData->getValuesLeaf;
|
|
Packit |
b099d7 |
post_proc = ((*wcePtr)->getValuesPosthook);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
if (post_proc) {
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
if ((--(wrapperData->getValuesLeafCount)) == 0)
|
|
Packit |
b099d7 |
wc->core_class.get_values_hook =
|
|
Packit |
b099d7 |
wrapperData->getValuesLeaf;
|
|
Packit |
b099d7 |
#ifdef FIX_1392
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
int depthDiff = leafDepth - depth;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for ( ; depthDiff;
|
|
Packit |
b099d7 |
depthDiff--, wc = wc->core_class.superclass)
|
|
Packit |
b099d7 |
{};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wrapperData = GetWrapperData(wc);
|
|
Packit |
b099d7 |
getvalues_proc = wrapperData->getValuesLeaf;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (getvalues_proc)
|
|
Packit |
b099d7 |
(*getvalues_proc)(new_w, args, num_args);
|
|
Packit |
b099d7 |
if (post_proc)
|
|
Packit |
b099d7 |
(*post_proc)(new_w, args, num_args);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper0( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper1( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper2( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 2);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper3( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 3);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper4( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 4);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper5( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 5);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper6( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 6);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper7( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 7);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper8( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 8);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesLeafWrapper9( Widget new_w, ArgList args,Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
GetValuesLeafWrapper(new_w, args, num_args, 9);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static int
|
|
Packit |
b099d7 |
GetDepth(WidgetClass wc)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for (i = 0;
|
|
Packit |
b099d7 |
wc && wc != rectObjClass;
|
|
Packit |
b099d7 |
i++, wc = wc->core_class.superclass) {};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wc)
|
|
Packit |
b099d7 |
return i;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
return 0;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* These symbols must always be present so applications compiling with
|
|
Packit |
b099d7 |
* -DXTHREADS can still link against libraries built without it. How
|
|
Packit |
b099d7 |
* those applications recognize non MT-safe libraries is a different
|
|
Packit |
b099d7 |
* issue.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#ifndef XTHREADS
|
|
Packit |
b099d7 |
# undef _XmFastSubclassInit
|
|
Packit |
b099d7 |
# undef _XmIsFastSubclass
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmFastSubclassInit(WidgetClass wc, unsigned int bit)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmBaseClassExt *basePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (basePtr && (*basePtr))
|
|
Packit |
b099d7 |
_XmSetFlagsBit(((*basePtr)->flags), bit);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Boolean
|
|
Packit |
b099d7 |
_XmIsFastSubclass(WidgetClass wc, unsigned int bit)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmBaseClassExt *basePtr = _XmGetBaseClassExtPtr(wc, XmQmotif);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!basePtr || !(*basePtr))
|
|
Packit |
b099d7 |
return False;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (_XmGetFlagsBit(((*basePtr)->flags), bit))
|
|
Packit |
b099d7 |
return True;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
return False;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|