1 /*
2  * Motif
3  *
4  * Copyright (c) 1987-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these librararies and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22 */
23 #ifndef _XmScreenP_h
24 #define _XmScreenP_h
25 
26 #include <Xm/DesktopP.h>
27 #include <Xm/Screen.h>
28 #include <Xm/DragIcon.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 typedef struct _XmScreenClassPart {
35     XtPointer		extension;
36 } XmScreenClassPart, *XmScreenClassPartPtr;
37 
38 typedef struct _XmScreenClassRec {
39 /*    ObjectClassPart		object_class;
40     XmExtClassPart		ext_class; */
41     CoreClassPart               core_class ;
42     XmDesktopClassPart 		desktop_class;
43     XmScreenClassPart		screen_class;
44 } XmScreenClassRec;
45 
46 typedef struct _XmDragCursorRec {
47     struct _XmDragCursorRec	*next;
48     Cursor			cursor;
49     XmDragIconObject		stateIcon;
50     XmDragIconObject		opIcon;
51     XmDragIconObject		sourceIcon;
52     Boolean			dirty;
53 } XmDragCursorRec, *XmDragCursorCache;
54 
55 typedef struct _XmScratchPixmapKeyRec *XmScratchPixmapKey;
56 
57 typedef struct _XmScratchPixmapKeyRec {
58     Cardinal		depth;
59     Dimension           width;
60     Dimension           height;
61 } XmScratchPixmapKeyRec;
62 
63 typedef struct {
64     Boolean		mwmPresent;
65     unsigned short	numReparented;
66     int			darkThreshold;
67     int			foregroundThreshold;
68     int			lightThreshold;
69     XmDragIconObject	defaultNoneCursorIcon;
70     XmDragIconObject	defaultValidCursorIcon;
71     XmDragIconObject	defaultInvalidCursorIcon;
72     XmDragIconObject	defaultMoveCursorIcon;
73     XmDragIconObject	defaultCopyCursorIcon;
74     XmDragIconObject	defaultLinkCursorIcon;
75     XmDragIconObject	defaultSourceCursorIcon;
76 
77     Cursor		nullCursor;
78     XmDragCursorRec	*cursorCache;
79     Cardinal		maxCursorWidth;
80     Cardinal		maxCursorHeight;
81 
82     Cursor		menuCursor;
83     unsigned char	unpostBehavior;
84     XFontStruct *	font_struct;
85     int			h_unit;
86     int			v_unit;
87     XtPointer		scratchPixmaps;
88     unsigned char       moveOpaque;
89     XmScreenColorProc   color_calc_proc;
90     XmAllocColorProc    color_alloc_proc;
91     XtEnum              bitmap_conversion_model;
92 
93     /* to save internally-created XmDragIcons */
94 
95     XmDragIconObject	xmStateCursorIcon;
96     XmDragIconObject	xmMoveCursorIcon;
97     XmDragIconObject	xmCopyCursorIcon;
98     XmDragIconObject	xmLinkCursorIcon;
99     XmDragIconObject	xmSourceCursorIcon;
100 
101     GC			imageGC;		/* OBSOLETE FIELD */
102     int			imageGCDepth;           /* OBSOLETE FIELD */
103     Pixel		imageForeground;        /* OBSOLETE FIELD */
104     Pixel		imageBackground;        /* OBSOLETE FIELD */
105 
106     XtPointer		screenInfo;		/* extension */
107 
108     XtPointer           user_data;
109 
110     Pixmap              insensitive_stipple_bitmap;
111 
112 #ifdef DEFAULT_GLYPH_PIXMAP
113    Pixmap           default_glyph_pixmap ;
114    unsigned int     default_glyph_pixmap_width ;
115    unsigned int     default_glyph_pixmap_height ;
116 #endif
117 
118    XtPointer		inUsePixmaps;
119 } XmScreenPart, *XmScreenPartPtr;
120 
121 typedef struct _XmScreenInfo {
122 	/* so much for information hiding */
123 	XtPointer	menu_state;		/* MenuUtil.c */
124 	Boolean		destroyCallbackAdded;	/* ImageCache.c */
125 } XmScreenInfo;
126 
127 externalref XmScreenClassRec 	xmScreenClassRec;
128 
129 typedef struct _XmScreenRec {
130 /*    ObjectPart			object;
131     XmExtPart			ext; */
132     CorePart                    core ;
133     XmDesktopPart		desktop;
134     XmScreenPart		screen;
135 } XmScreenRec;
136 
137 
138 #ifdef __cplusplus
139 }  /* Close scope of 'extern "C"' declaration which encloses file. */
140 #endif
141 
142 #endif /* _XmScreenP_h */
143 /* DON'T ADD STUFF AFTER THIS #endif */
144