Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:26

0001 /*
0002 
0003 Copyright 1990, 1998  The Open Group
0004 
0005 Permission to use, copy, modify, distribute, and sell this software and its
0006 documentation for any purpose is hereby granted without fee, provided that
0007 the above copyright notice appear in all copies and that both that
0008 copyright notice and this permission notice appear in supporting
0009 documentation.
0010 
0011 The above copyright notice and this permission notice shall be included in
0012 all copies or substantial portions of the Software.
0013 
0014 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0015 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0016 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
0017 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
0018 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
0019 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0020 
0021 Except as contained in this notice, the name of The Open Group shall not be
0022 used in advertising or otherwise to promote the sale, use or other dealings
0023 in this Software without prior written authorization from The Open Group.
0024 
0025 */
0026 
0027 /*
0028  * Author:  Jim Fulton, MIT X Consortium
0029  */
0030 
0031 #ifndef _XmuWidgetNode_h
0032 #define _XmuWidgetNode_h
0033 
0034 #include <X11/Intrinsic.h>
0035 #include <X11/Xfuncproto.h>
0036 
0037 /*
0038  * This is usually initialized by setting the first two fields and letting
0039  * rest be implicitly nulled (by genlist.sh, for example)
0040  */
0041 typedef struct _XmuWidgetNode {
0042     char *label;            /* mixed case name */
0043     WidgetClass *widget_class_ptr;  /* addr of widget class */
0044     struct _XmuWidgetNode *superclass;  /* superclass of widget_class */
0045     struct _XmuWidgetNode *children, *siblings; /* subclass links */
0046     char *lowered_label;        /* lowercase version of label */
0047     char *lowered_classname;        /* lowercase version of class_name */
0048     Bool have_resources;        /* resources have been fetched */
0049     XtResourceList resources;       /* extracted resource database */
0050     struct _XmuWidgetNode **resourcewn; /* where resources come from */
0051     Cardinal nresources;        /* number of resources */
0052     XtResourceList constraints;     /* extracted constraint resources */
0053     struct _XmuWidgetNode **constraintwn;  /* where constraints come from */
0054     Cardinal nconstraints;      /* number of constraint resources */
0055     XtPointer data;         /* extra data */
0056 } XmuWidgetNode;
0057 
0058 #define XmuWnClass(wn) ((wn)->widget_class_ptr[0])
0059 #define XmuWnClassname(wn) (XmuWnClass(wn)->core_class.class_name)
0060 #define XmuWnSuperclass(wn) ((XmuWnClass(wn))->core_class.superclass)
0061 
0062                     /* external interfaces */
0063 _XFUNCPROTOBEGIN
0064 
0065 void XmuWnInitializeNodes
0066 (
0067  XmuWidgetNode      *nodearray,
0068  int            nnodes
0069  );
0070 
0071 void XmuWnFetchResources
0072 (
0073  XmuWidgetNode      *node,
0074  Widget         toplevel,
0075  XmuWidgetNode      *topnode
0076  );
0077 
0078 int XmuWnCountOwnedResources
0079 (
0080  XmuWidgetNode      *node,
0081  XmuWidgetNode      *ownernode,
0082  Bool           constraints
0083  );
0084 
0085 XmuWidgetNode *XmuWnNameToNode
0086 (
0087  XmuWidgetNode      *nodelist,
0088  int            nnodes,
0089  _Xconst char       *name
0090  );
0091 
0092 _XFUNCPROTOEND
0093 
0094 #endif /* _XmuWidgetNode_h */
0095