1 /**
2  *
3  * $Id: DragOverSP.h,v 1.1 2004/08/28 19:23:25 dannybackx Exp $
4  *
5  * Copyright (C) 1995 Free Software Foundation, Inc.
6  * Copyright (C) 1995-2000 LessTif Development Team
7  *
8  * This file is part of the GNU LessTif Library.
9  *
10  * This library is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU Library General Public
12  * License as published by the Free Software Foundation; either
13  * version 2 of the License, or (at your option) any later version.
14  *
15  * This library is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  * Library General Public License for more details.
19  *
20  * You should have received a copy of the GNU Library General Public
21  * License along with this library; if not, write to the Free
22  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  *
24  **/
25 
26 #ifndef _XM_DRAGOVERSP_H
27 #define _XM_DRAGOVERSP_H
28 
29 #include <X11/Shell.h>
30 #include <X11/ShellP.h>
31 #include <Xm/XmP.h>
32 #include <Xm/DragIconP.h>
33 #include <Xm/DragOverS.h>
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 #define DOExpose(do) \
40 	((XtClass(do))->core_class.expose) ((Widget)(do), NULL, NULL)
41 
42 typedef struct {
43     XtPointer extension;
44 } XmDragOverShellClassPart;
45 
46 typedef struct _XmDragOverShellClassRec {
47     CoreClassPart core_class;
48     CompositeClassPart composite_class;
49     ShellClassPart shell_class;
50     WMShellClassPart wm_shell_class;
51     VendorShellClassPart vendor_shell_class;
52     XmDragOverShellClassPart dragOver_shell_class;
53 } XmDragOverShellClassRec;
54 
55 XMLIBEXPORT extern XmDragOverShellClassRec xmDragOverShellClassRec;
56 
57 typedef struct _XmBackingRec {
58     Position x, y;
59     Pixmap pixmap;
60 } XmBackingRec, *XmBacking;
61 
62 typedef struct _XmDragOverBlendRec {
63     XmDragIconObject sourceIcon;	/* source icon */
64     Position sourceX;			/* source location x in blend */
65     Position sourceY;			/* source location y in blend */
66     XmDragIconObject mixedIcon;		/* blended icon */
67     GC gc;				/* blend tool (remember right depth) */
68 } XmDragOverBlendRec, *XmDragOverBlend;
69 
70 typedef struct _XmDragOverShellPart {
71     Position hotX;			/* current hotx */
72     Position hotY;			/* current hoty */
73     unsigned char cursorState;		/* current cursor state */
74     unsigned char mode;			/* XmWINDOW, XmPIXMAP, XmCURSOR */
75     unsigned char activeMode;		/* XmWINDOW, XmPIXMAP, XmCURSOR */
76 
77     Position initialX;			/* initial hotx */
78     Position initialY;			/* initial hoty */
79 
80     XmDragIconObject stateIcon;		/* current state icon */
81     XmDragIconObject opIcon;		/* current operation icon */
82 
83     XmDragOverBlendRec cursorBlend;	/* cursor blending */
84     XmDragOverBlendRec rootBlend;	/* window or pixmap blending */
85     Pixel cursorForeground;		/* guess */
86     Pixel cursorBackground;		/* guess */
87     Cursor ncCursor;			/* non-cached cursor */
88     Cursor activeCursor;		/* the current cursor */
89 
90     XmBackingRec backing;		/* backing store for pixdrag ? */
91     Pixmap tmpPix;			/* temp store for pixdrag ? */
92     Pixmap tmpBit;			/* temp store for pixdrag ? */
93     Boolean isVisible;			/* shell is visible */
94 } XmDragOverShellPart;
95 
96 typedef struct _XmDragOverShellRec {
97     CorePart core;
98     CompositePart composite;
99     ShellPart shell;
100     WMShellPart wm;
101     VendorShellPart vendor;
102     XmDragOverShellPart drag;
103 } XmDragOverShellRec;
104 
105 #ifdef __cplusplus
106 }
107 #endif
108 
109 #endif /* _XM_DRAGOVERSP_H */
110