1 /*************************************<+>*************************************
2  *****************************************************************************
3  **
4  **   File:        FormP.h
5  **
6  **   Project:     X Widgets
7  **
8  **   Description: Private include file for the Form class
9  **
10  *****************************************************************************
11  **
12  **   Copyright (c) 1988 by Hewlett-Packard Company
13  **   Copyright (c) 1988 by the Massachusetts Institute of Technology
14  **
15  **   Permission to use, copy, modify, and distribute this software
16  **   and its documentation for any purpose and without fee is hereby
17  **   granted, provided that the above copyright notice appear in all
18  **   copies and that both that copyright notice and this permission
19  **   notice appear in supporting documentation, and that the names of
20  **   Hewlett-Packard or  M.I.T.  not be used in advertising or publicity
21  **   pertaining to distribution of the software without specific, written
22  **   prior permission.
23  **
24  *****************************************************************************
25  *************************************<+>*************************************/
26 
27 
28 /*  Form constraint rec  */
29 
30 typedef struct _XwFormConstraintRec
31 {
32    String  x_ref_name;		/*  the name of the widget to reference     */
33    Widget  x_ref_widget;	/*  the widget to reference                 */
34    int     x_offset;		/*  the offset (pixels) from the reference  */
35    Boolean x_add_width;		/*  add width of the reference to x coord   */
36    Boolean x_vary_offset;	/*  able to vary the seperation             */
37    Boolean x_resizable;		/*  able to resize in x direction           */
38    Boolean x_attach_right;	/*  attached to the right edge of the form  */
39    int     x_attach_offset;	/*  offset (pixels) from attached edge      */
40 
41    String  y_ref_name;		/*  y constraints are the same as x  */
42    Widget  y_ref_widget;
43    int     y_offset;
44    Boolean y_add_height;
45    Boolean y_vary_offset;
46    Boolean y_resizable;
47    Boolean y_attach_bottom;
48    int     y_attach_offset;
49 
50 
51    Boolean   managed;		/*  whether the widget is managed or not     */
52    int       x, y;		/*  location after constraint processing     */
53    Dimension width, height;	/*  size after constraint processing         */
54 
55    int       set_x;		/*  original y                               */
56    int       set_y;		/*  original x                               */
57    Dimension set_width;		/*  original or set values width of widget   */
58    Dimension set_height;	/*  original or set values height of widget  */
59 
60    Dimension width_when_unmanaged;
61    Dimension height_when_unmanaged;
62 } XwFormConstraintRec;
63 
64 
65 /*  Form class structure  */
66 
67 typedef struct _XwFormClassPart
68 {
69    int foo;	/*  No new fields needed  */
70 } XwFormClassPart;
71 
72 
73 /*  Full class record declaration for Form class  */
74 
75 typedef struct _XwFormClassRec
76 {
77    CoreClassPart        core_class;
78    CompositeClassPart   composite_class;
79    ConstraintClassPart  constraint_class;
80    XwManagerClassPart   manager_class;
81    XwFormClassPart      form_class;
82 } XwFormClassRec;
83 
84 extern XwFormClassRec XwformClassRec;
85 
86 
87 /*  The Form tree structure used for containing the constraint tree  */
88 
89 struct _XwFormRef
90 {
91    Widget  this;		/*  the widget these constaints are for     */
92    Widget  ref;			/*  the widget this constraint is for       */
93    int     offset;		/*  offset (pixels) from parent ref         */
94    Boolean add;			/*  add (width or height) of parent ref     */
95    Boolean vary;		/*  able to vary the seperation             */
96    Boolean resizable;		/*  able to resize                          */
97    Boolean attach;		/*  attached to the edge (right or bottom)  */
98    int     attach_offset;	/*  offset (pixels) from attached edge      */
99 
100    int set_loc;		   /*  the initial or set value location  */
101    int set_size;	   /*  the initial or set value size      */
102 
103    struct _XwFormRef ** ref_to;		/*  child references            */
104    int                  ref_to_count;	/*  number of child references  */
105 };
106 
107 typedef struct _XwFormRef XwFormRef;
108 
109 
110 typedef struct _XwFormProcess
111 {
112    XwFormRef * ref;
113    int loc;
114    int size;
115    Boolean leaf;
116 } XwFormProcess;
117 
118 /*  The Form instance record  */
119 
120 typedef struct _XwFormPart
121 {
122    XwFormRef * width_tree;
123    XwFormRef * height_tree;
124 } XwFormPart;
125 
126 
127 /*  Full instance record declaration  */
128 
129 typedef struct _XwFormRec
130 {
131    CorePart	    core;
132    CompositePart    composite;
133    ConstraintPart   constraint;
134    XwManagerPart    manager;
135    XwFormPart       form;
136 } XwFormRec;
137 
138 
139 
140 
141