Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:15:24

0001 /* 
0002  * Motif
0003  *
0004  * Copyright (c) 1987-2012, The Open Group. All rights reserved.
0005  *
0006  * These libraries and programs are free software; you can
0007  * redistribute them and/or modify them under the terms of the GNU
0008  * Lesser General Public License as published by the Free Software
0009  * Foundation; either version 2 of the License, or (at your option)
0010  * any later version.
0011  *
0012  * These libraries and programs are distributed in the hope that
0013  * they will be useful, but WITHOUT ANY WARRANTY; without even the
0014  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
0015  * PURPOSE. See the GNU Lesser General Public License for more
0016  * details.
0017  *
0018  * You should have received a copy of the GNU Lesser General Public
0019  * License along with these librararies and programs; if not, write
0020  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
0021  * Floor, Boston, MA 02110-1301 USA
0022 */ 
0023 #ifndef _XmDragOverSP_h
0024 #define _XmDragOverSP_h
0025 
0026 #include <X11/IntrinsicP.h>
0027 
0028 #include <X11/Shell.h>
0029 #include <X11/ShellP.h>
0030 #include <Xm/XmP.h>
0031 #include <Xm/DragIconP.h>
0032 #include <Xm/DragOverS.h>
0033 
0034 #ifdef __cplusplus
0035 extern "C" {
0036 #endif
0037 
0038 #define DOExpose(do) \
0039     ((XtClass(do))->core_class.expose) ((Widget)(do), NULL, NULL)
0040 
0041 /* 
0042  * DRAGOVER SHELL
0043  */
0044 typedef struct 
0045 {
0046     XtPointer               extension;
0047 } XmDragOverShellClassPart;
0048 
0049 /* Full class record declaration */
0050 
0051 typedef struct _XmDragOverShellClassRec 
0052 {
0053     CoreClassPart       core_class;
0054     CompositeClassPart      composite_class;
0055     ShellClassPart      shell_class;
0056     WMShellClassPart            wm_shell_class;
0057     VendorShellClassPart    vendor_shell_class;
0058     XmDragOverShellClassPart    dragOver_shell_class;
0059 } XmDragOverShellClassRec;
0060 
0061 externalref XmDragOverShellClassRec xmDragOverShellClassRec;
0062 
0063 typedef struct _XmBackingRec{
0064     Position    x, y;
0065     Pixmap  pixmap;
0066 }XmBackingRec, *XmBacking;
0067 
0068 typedef struct _XmDragOverBlendRec{
0069     XmDragIconObject        sourceIcon; /* source icon */
0070     Position            sourceX;    /* source location in blend */
0071     Position            sourceY;    /* source location in blend */
0072     XmDragIconObject        mixedIcon;  /* blended icon */
0073     GC              gc;     /* appropriate depth */
0074 }XmDragOverBlendRec, *XmDragOverBlend;
0075 
0076 typedef struct _XmDragOverShellPart{
0077     Position        hotX;       /* current hotX */
0078     Position        hotY;       /* current hotY */
0079     unsigned char   cursorState;    /* current cursor state */
0080     unsigned char   mode;
0081     unsigned char   activeMode;
0082 
0083     Position        initialX;   /* initial hotX */
0084     Position        initialY;   /* initial hotY */
0085 
0086     XmDragIconObject    stateIcon;  /* current state icon */
0087     XmDragIconObject    opIcon;     /* current operation icon */
0088 
0089     XmDragOverBlendRec  cursorBlend;    /* cursor blending */
0090     XmDragOverBlendRec  rootBlend;  /* pixmap or window blending */
0091     Pixel       cursorForeground;
0092     Pixel       cursorBackground;
0093     Cursor      ncCursor;   /* noncached cursor */
0094     Cursor      activeCursor;   /* the current cursor */
0095 
0096     XmBackingRec    backing;    /* backing store for pixdrag */
0097     Pixmap      tmpPix;     /* temp storage for pixdrag */
0098     Pixmap      tmpBit;     /* temp storage for pixdrag */
0099     Boolean             isVisible;  /* shell is visible */
0100 
0101     /* Added for ShapedWindow dragging */
0102     /* Resources */
0103     Boolean     installColormap;/* Install the colormap */
0104 
0105     /* locals */
0106     Boolean     holePunched;    /* true if hole is punched */
0107 
0108     /* the following variables are used to make sure the correct colormap */
0109     /* is installed.  colormapWidget is initially the parent widget, but */
0110     /* can be changed by calling DragShellColormapWidget.       */
0111     Widget      colormapWidget; /* The widget I'm dragging from */
0112     Widget      colormapShell;  /* It's shell, install colormap here */
0113     Boolean     colormapOverride; /* shell is override rediirect */
0114     Colormap*       savedColormaps; /* used with override redirect */
0115     int         numSavedColormaps;
0116 }XmDragOverShellPart;
0117 
0118 typedef  struct _XmDragOverShellRec{
0119     CorePart        core;
0120     CompositePart   composite;
0121     ShellPart       shell;
0122     WMShellPart     wm;
0123     VendorShellPart vendor;
0124     XmDragOverShellPart drag;
0125 } XmDragOverShellRec;
0126 
0127 #ifdef __cplusplus
0128 }  /* Close scope of 'extern "C"' declaration which encloses file. */
0129 #endif
0130 
0131 #endif /* _XmDragOverSP_h */