Initial import of the CDE 2.1.30 sources from the Open Group.
[oweals/cde.git] / cde / programs / dtfile / Encaps.h
1 /* $XConsortium: Encaps.h /main/4 1995/11/02 14:36:49 rswiston $ */
2 /************************************<+>*************************************
3  ****************************************************************************
4  *
5  *   FILE:           Encaps.h
6  *
7  *   COMPONENT_NAME: Desktop File Manager
8  *
9  *   DESCRIPTION:    Public include file for the dialog encapsulation functions.
10  *
11  *   (c) Copyright 1993, 1994, 1995 Hewlett-Packard Company
12  *   (c) Copyright 1993, 1994, 1995 International Business Machines Corp.
13  *   (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc.
14  *   (c) Copyright 1993, 1994, 1995 Novell, Inc.
15  *
16  ****************************************************************************
17  ************************************<+>*************************************/
18
19 #ifndef _Encapsualte_h
20 #define _Encapsulate_h
21
22
23 /* Timer globals */
24 extern int initialTimeoutLength;
25 extern int activeTimeoutLength;
26 extern int idleTimeoutLength;
27
28 /* Dialog positioning offset value */
29 extern int topPositionOffset;
30
31
32
33 /*
34  *  Common dialog instance data.
35  */
36
37 typedef struct
38 {
39    Boolean   displayed;
40    Position  x;
41    Position  y;
42    Dimension width;
43    Dimension height;
44 } DialogInstanceData, * DialogInstanceDataPtr;
45
46
47 /*
48  *  DialogData contains the dialog type specific data shared between
49  *  the dialog and the application.
50  */
51
52 typedef struct
53 {
54    int     type;
55    XtPointer data;
56 } DialogData;
57
58
59 /*
60  *  The following typedefs are the function definitions used by the
61  *  Dialog Class structure.
62  */
63
64 typedef void (*DialogCreateProc)(
65     Display * display,
66     Widget    parent,
67     Widget  * shell,
68     XtPointer * dialog
69 );
70
71 typedef void (*DialogInstallChangeProc)(
72     XtPointer        dialog,
73     XtCallbackProc callback,
74     XtPointer        client_data
75 );
76
77 typedef void (*DialogInstallCloseProc)(
78     XtPointer        dialog,
79     XtCallbackProc callback,
80     XtPointer        client_data
81 );
82
83 typedef void (*DialogDestroyProc)(
84     XtPointer dialog
85 );
86
87 typedef XtPointer (*DialogGetValuesProc)(
88     XtPointer dialog
89 );
90
91 typedef XtPointer (*DialogGetDefaultValuesProc)(
92     void
93 );
94
95
96 typedef XtPointer (*DialogGetResourceValuesProc)(
97     XrmDatabase    data_base,
98     char        ** name_list
99 );
100
101 typedef void (*DialogSetValuesProc)(
102     XtPointer     dialog,
103     XtPointer     values
104 );
105 typedef void (*DialogWriteResourceValuesProc)(
106     DialogData *  values,
107     int           fd,
108     char       ** name_list
109 );
110
111 typedef void (*DialogFreeValuesProc)(
112     XtPointer     values
113 );
114
115 typedef void (*DialogSetFocusProc)(
116     XtPointer     dialog,
117     XtPointer     values
118 );
119
120
121 typedef void (*DialogMapWindowProc)(
122     Widget    parent,
123     XtPointer  dialog
124 );
125
126
127 /*
128  *  Resource write proc and structure used for dialog resources. 
129  */
130
131 typedef void (*WriteResourceProc)();
132 /*  XtPointer resource_val;   */
133
134 typedef struct 
135 {
136    String  name;
137    String  type;
138    int     size;
139    int     offset;
140    XtPointer default_value;
141    WriteResourceProc write_resource;   
142 } DialogResource;
143
144
145 /*
146  *  The Dialog Class structure.
147  */
148
149 typedef struct
150 {
151    DialogResource              * resources;
152    int                           resource_count;
153    DialogCreateProc              create;
154    DialogInstallChangeProc       install_change_callback;
155    DialogInstallCloseProc        install_close_callback;
156    DialogDestroyProc             destroy;
157    DialogGetValuesProc           get_values;
158    DialogGetDefaultValuesProc    get_default_values;
159    DialogGetResourceValuesProc   get_resource_values;
160    DialogSetValuesProc           set_values;
161    DialogWriteResourceValuesProc write_resource_values;
162    DialogFreeValuesProc          free_values;
163    DialogMapWindowProc           map;
164    DialogSetFocusProc            set_focus;
165 } DialogClass;
166
167
168
169 /*
170  *  Procedure types used by the application for functions to be passed
171  *  to the encapsulation mechanism.
172  */
173
174 typedef void (*DialogChangedProc)(
175     XtPointer      change_data,
176     DialogData * old_data,
177     DialogData * new_data,
178     XtPointer      call_data
179 );
180
181 typedef void (*DialogClosedProc)(
182     XtPointer      close_data,
183     DialogData * old_data,
184     DialogData * new_data
185 );
186
187
188
189 /********    Public Function Declarations    ********/
190
191 extern void _DtInitializeEncapsulation( 
192                         Display *display,
193                         char *name,
194                         char *class) ;
195 extern int _DtInstallDialog( 
196                         DialogClass *dialog_class,
197                         Boolean cache,
198                         Boolean destroyPopups) ;
199 extern DialogData * _DtGetDialogData( 
200                         DialogData *dialog_data) ;
201 extern DialogData * _DtGetDefaultDialogData( 
202                         int dialog_type) ;
203 extern DialogData * _DtGetResourceDialogData( 
204                         int dialog_type,
205                         XrmDatabase data_base,
206                         char **name_list) ;
207 extern void _DtShowDialog( 
208                         Widget parent,
209                         Widget map_parent,
210                         XtPointer top_rec,
211                         DialogData *dialog_data,
212                         DialogChangedProc change_proc,
213                         XtPointer change_data,
214                         DialogClosedProc close_proc,
215                         XtPointer close_data,
216                         char *workspaces,
217                         Boolean iconify_state,
218                         Boolean ignoreCache,
219                         char * title,
220                         XClassHint * classHints) ;
221 extern void _DtHideDialog( 
222                         DialogData *dialog_data,
223                         Boolean call_callbacks) ;
224 extern Widget _DtGetDialogShell( 
225                         DialogData *dialog_data) ;
226 extern XtPointer _DtGetDialogInstance( 
227                         DialogData *dialog_data) ;
228 extern DialogData * _DtGetInstanceData( 
229                         XtPointer instance) ;
230 extern Boolean _DtIsDialogShowing( 
231                         DialogData *dialog_data) ;
232 extern void _DtWriteDialogData( 
233                         DialogData *dialog_data,
234                         int fd,
235                         char **name_list) ;
236 extern void _DtFreeDialogData( 
237                         DialogData *dialog_data) ;
238 extern void _DtDialogGetResources( 
239                         XrmDatabase database,
240                         char **name_list,
241                         char *dialog_name,
242                         char *base,
243                         DialogResource *resources,
244                         int resource_count) ;
245 extern void _DtDialogPutResources( 
246                         int fd,
247                         char **name_list,
248                         char *dialog_name,
249                         char *base,
250                         DialogResource *resources,
251                         int resource_count) ;
252 extern void _DtIntToString( 
253                         int fd,
254                         int *value,
255                         char *out_buf) ;
256 extern void _DtShortToString( 
257                         int fd,
258                         short *value,
259                         char *out_buf) ;
260 extern void _DtPositionToString( 
261                         int fd,
262                         Position *value,
263                         char *out_buf) ;
264 extern void _DtDimensionToString( 
265                         int fd,
266                         Dimension *value,
267                         char *out_buf) ;
268 extern void _DtBooleanToString( 
269                         int fd,
270                         Boolean *value,
271                         char *out_buf) ;
272 extern void _DtXmStringToString( 
273                         int fd,
274                         XmString *value,
275                         char *out_buf) ;
276 extern void _DtXmStringTableToString( 
277                         int fd,
278                         XmStringTable *value,
279                         char *out_buf) ;
280 extern void _DtStringToString( 
281                         int fd,
282                         char **value,
283                         char *out_buf) ;
284 extern void _DtmapCB(
285                         Widget w,
286                         XtPointer client_data,
287                         XtPointer call_data) ;
288 extern void _DtEncapSetWorkSpaceHints( 
289                         Widget shell,
290                         char *workspaces) ;
291 extern void _DtBuildDialog(
292                         Widget parent,
293                         Widget map_parent,
294                         XtPointer top_rec,
295                         DialogData *dialog_data,
296                         DialogChangedProc change_proc,
297                         XtPointer change_data,
298                         DialogClosedProc close_proc,
299                         XtPointer close_data,
300                         char *workspaces,
301                         Boolean iconify_state,
302                         Boolean ignoreCache,
303                         char * title,
304                         XClassHint * classHints ) ;
305 extern void _DtShowBuiltDialog(
306                         Widget parent,
307                         Widget map_parent,
308                         DialogData *dialog_data,
309                         char *workspaces,
310                         Boolean iconify_state,
311                         XClassHint * classHints ) ;
312
313 extern void _DtFreeDialog(
314                         DialogData *dialog_data);
315 /********    End Public Function Declarations    ********/
316
317 #endif /* _Encapsulate_h */
318 /* DON'T ADD ANYTHING AFTER THIS #endif */