Initial import of the CDE 2.1.30 sources from the Open Group.
[oweals/cde.git] / cde / lib / DtWidget / DialogBoxP.h
1 /* $XConsortium: DialogBoxP.h /main/5 1996/03/27 20:16:24 drk $ */
2 /**---------------------------------------------------------------------
3 ***     
4 ***     file:           DialogBoxP.h
5 ***
6 ***     project:        Motif Widgets
7 ***
8 ***     description:    Private include file for DtDialogBox class.
9 ***     
10 ***     
11 ***                     (c) Copyright 1990 by Hewlett-Packard Company.
12 ***
13 ***
14 ***-------------------------------------------------------------------*/
15
16
17 #ifndef _DtDialogBoxP_h
18 #define _DtDialogBoxP_h
19
20 #include <Xm/XmP.h>
21 #include <Xm/BulletinBP.h>
22 #include <Xm/FormP.h>
23 #include <Dt/DialogBox.h>
24
25 typedef void (*DlgGetSizeProc)(
26         Widget,
27         Dimension,
28         Dimension,
29         Dimension,
30         Dimension,
31         Dimension *,
32         Dimension *
33 );
34 /*-------------------------------------------------------------
35 **      Class Structure
36 */
37
38 /*      Class Part
39 */
40 typedef struct _DtDialogBoxClassPart
41 {
42         XtWidgetProc            create_children;
43         XtWidgetProc            configure_children;
44         DlgGetSizeProc          get_size;
45         XtCallbackProc          button_callback;
46         caddr_t                 extension;
47 } DtDialogBoxClassPart;
48
49 /*      Full Class Record
50 */
51 typedef struct _DtDialogBoxClassRec
52 {
53         CoreClassPart           core_class;
54         CompositeClassPart      composite_class;
55         ConstraintClassPart     constraint_class;
56         XmManagerClassPart      manager_class;
57         XmBulletinBoardClassPart        bulletin_board_class;
58         XmFormClassPart         form_class;
59         DtDialogBoxClassPart    dialog_box_class;
60 } DtDialogBoxClassRec;
61
62 /*      Actual Class
63 */
64 extern DtDialogBoxClassRec dtDialogBoxClassRec;
65
66
67 /*-------------------------------------------------------------
68 **      Instance Structure
69 */
70
71 /*      Instance Part
72 */
73 typedef struct _DtDialogBoxPart
74 {
75         XtCallbackList  callback;
76         Widget          work_area;
77         Widget          separator;
78         WidgetList      button;
79         Cardinal        button_count;   
80         Boolean         minimize_buttons;
81         XmStringTable   button_label_strings;
82 } DtDialogBoxPart;
83
84 /*      Full Instance Record
85 */
86 typedef struct _DtDialogBoxRec
87 {
88         CorePart                core;
89         CompositePart           composite;
90         ConstraintPart          constraint;
91         XmManagerPart           manager;
92         XmBulletinBoardPart     bulletin_board;
93         XmFormPart              form;
94         DtDialogBoxPart         dialog_box;
95 } DtDialogBoxRec;
96
97
98 /*-------------------------------------------------------------
99 **      Constraint Structure
100 */
101
102 /*      Constraint Part
103 */
104 typedef struct _DtDialogBoxConstraintPart
105 {
106         unsigned char           child_type;
107 } DtDialogBoxConstraintPart, * DtDialogBoxConstraint;
108
109 /*      Full Constraint Record
110 */
111 typedef struct _DtDialogBoxConstraintRec
112 {
113         XmManagerConstraintPart         manager_constraint;
114         XmFormConstraintPart            form_constraint;
115         DtDialogBoxConstraintPart       dialog_box_constraint;
116 } DtDialogBoxConstraintRec, * DtDialogBoxConstraintPtr;
117
118
119 \f
120 /*-------------------------------------------------------------
121 **      Class and Instance Macros
122 */
123
124 /*      DtDialogBox Class Macros
125 */      
126 /**** WARNING: These macros are not thread-safe! ****/
127 #define C_CreateChildren(mc)    ((mc) -> dialog_box_class.create_children)
128 #define C_ConfigureChildren(mc) ((mc) -> dialog_box_class.configure_children)
129 #define C_GetSize(mc)           ((mc) -> dialog_box_class.get_size)
130 #define C_ButtonCallback(mc)    ((mc) -> dialog_box_class.button_callback)
131
132 /*      DtDialogBox Instance Macros
133 */
134 #define M_DialogBoxConstraint(w) \
135         (&((DtDialogBoxConstraintPtr) (w)->core.constraints) \
136                 -> dialog_box_constraint)
137 #define M_WorkArea(m)           (m -> dialog_box.work_area)
138 #define M_Separator(m)          (m -> dialog_box.separator)
139 #define M_MinimizeButtons(m)    (m -> dialog_box.minimize_buttons)
140 #define M_Button(m)             (m -> dialog_box.button)
141 #define M_ButtonCount(m)        (m -> dialog_box.button_count)
142 #define M_ButtonLabelStrings(m) (m -> dialog_box.button_label_strings)
143 #define M_Callback(m)           (m -> dialog_box.callback)
144
145 #endif /* _DtDialogBoxP_h */
146
147 /* DON'T ADD ANYTHING AFTER THIS #endif */