Back to home page

EIC code displayed by LXR

 
 

    


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

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 
0024 #ifndef _XmDropSMgrP_h
0025 #define _XmDropSMgrP_h
0026 
0027 #include <Xm/XmP.h>
0028 #include <Xm/DropSMgr.h>
0029 
0030 #ifdef __cplusplus
0031 extern "C" {
0032 #endif
0033 
0034 typedef void (*XmDSMCreateInfoProc)
0035     (XmDropSiteManagerObject, Widget, ArgList, Cardinal);
0036 typedef void (*XmDSMDestroyInfoProc)
0037     (XmDropSiteManagerObject, Widget);
0038 typedef void (*XmDSMStartUpdateProc)
0039     (XmDropSiteManagerObject, Widget);
0040 typedef void (*XmDSMRetrieveInfoProc)
0041     (XmDropSiteManagerObject, Widget, ArgList, Cardinal);
0042 typedef void (*XmDSMUpdateInfoProc)
0043     (XmDropSiteManagerObject, Widget, ArgList, Cardinal);
0044 typedef void (*XmDSMEndUpdateProc)
0045     (XmDropSiteManagerObject, Widget);
0046 typedef void (*XmDSMUpdateProc)
0047     (XmDropSiteManagerObject, XtPointer, XtPointer);
0048 typedef void (*XmDSMProcessMotionProc)
0049     (XmDropSiteManagerObject, XtPointer, XtPointer);
0050 typedef void (*XmDSMProcessDropProc)
0051     (XmDropSiteManagerObject, XtPointer, XtPointer);
0052 typedef void (*XmDSMOperationChangedProc)
0053     (XmDropSiteManagerObject, XtPointer, XtPointer);
0054 typedef void (*XmDSMChangeRootProc)
0055     (XmDropSiteManagerObject, XtPointer, XtPointer);
0056 typedef void (*XmDSMInsertInfoProc)
0057     (XmDropSiteManagerObject, XtPointer, XtPointer);
0058 typedef void (*XmDSMRemoveInfoProc)
0059     (XmDropSiteManagerObject, XtPointer);
0060 typedef void (*XmDSMSyncTreeProc)
0061     (XmDropSiteManagerObject, Widget);
0062 typedef int  (*XmDSMGetTreeFromDSMProc)
0063     (XmDropSiteManagerObject, Widget, XtPointer);
0064 typedef void (*XmDSMCreateDSInfoTable)
0065     (XmDropSiteManagerObject);
0066 typedef void (*XmDSMDestroyDSInfoTable)
0067     (XmDropSiteManagerObject);
0068 typedef void (*XmDSMRegisterInfoProc)
0069     (XmDropSiteManagerObject, Widget, XtPointer);
0070 typedef XtPointer (*XmDSMWidgetToInfoProc)
0071     (XmDropSiteManagerObject, Widget);
0072 typedef void (*XmDSMUnregisterInfoProc)
0073     (XmDropSiteManagerObject, XtPointer);
0074 
0075 typedef struct {
0076     XmDSMCreateInfoProc     createInfo;
0077     XmDSMDestroyInfoProc    destroyInfo;
0078     XmDSMStartUpdateProc    startUpdate;
0079     XmDSMRetrieveInfoProc   retrieveInfo;
0080     XmDSMUpdateInfoProc     updateInfo;
0081     XmDSMEndUpdateProc      endUpdate;
0082     
0083     /* Used by DragController Object */
0084     
0085     XmDSMUpdateProc     updateDSM;
0086     
0087     /* Used by update proc */
0088     
0089     XmDSMProcessMotionProc  processMotion;
0090     XmDSMProcessDropProc    processDrop;
0091     XmDSMOperationChangedProc   operationChanged;
0092     XmDSMChangeRootProc     changeRoot;
0093     
0094     /* Used to manage DropSites */
0095     
0096     XmDSMInsertInfoProc     insertInfo;
0097     /* Need a get and a put function for update? */
0098     XmDSMRemoveInfoProc     removeInfo;
0099 
0100     /* Used to manage the pre-register information */
0101 
0102     XmDSMSyncTreeProc       syncTree;
0103     XmDSMGetTreeFromDSMProc getTreeFromDSM;
0104     
0105     /* Used to hash between widgets and info */
0106     
0107     XmDSMCreateDSInfoTable  createTable;
0108     XmDSMDestroyDSInfoTable     destroyTable;
0109     XmDSMRegisterInfoProc   registerInfo;
0110     XmDSMWidgetToInfoProc   widgetToInfo;
0111     XmDSMUnregisterInfoProc     unregisterInfo;
0112     
0113     XtPointer           extension;
0114 } XmDropSiteManagerClassPart;
0115 
0116 /*  Full class record declaration for dropSite class  */
0117 
0118 typedef struct _XmDropSiteManagerClassRec{
0119     ObjectClassPart     object_class;
0120     XmDropSiteManagerClassPart      dropManager_class;
0121 } XmDropSiteManagerClassRec;
0122 
0123 externalref XmDropSiteManagerClassRec   xmDropSiteManagerClassRec;
0124 
0125 /* Macros for calling methods */
0126 
0127 #define DSMCreateInfo(dsm, widget, args, numArgs) \
0128     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0129         dropManager_class.createInfo) \
0130         ((dsm), (widget), (args), (numArgs))
0131 
0132 #define DSMDestroyInfo(dsm, widget) \
0133     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0134         dropManager_class.destroyInfo) \
0135         ((dsm), (widget))
0136 
0137 #define DSMStartUpdate(dsm, widget) \
0138     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0139         dropManager_class.startUpdate) \
0140         ((dsm), (widget))
0141 
0142 #define DSMRetrieveInfo(dsm, widget, args, numArgs) \
0143     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0144         dropManager_class.retrieveInfo) \
0145         ((dsm), (widget), (args), (numArgs))
0146 
0147 #define DSMUpdateInfo(dsm, widget, args, numArgs) \
0148     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0149         dropManager_class.updateInfo) \
0150         ((dsm), (widget), (args), (numArgs))
0151 
0152 #define DSMEndUpdate(dsm, widget) \
0153     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0154         dropManager_class.endUpdate) \
0155         ((dsm), (widget))
0156 
0157 #define DSMUpdate(dsm, clientData, callData) \
0158     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0159         dropManager_class.updateDSM) \
0160         ((dsm), (clientData), (callData))
0161 
0162 #define DSMProcessMotion(dsm, clientData, callData) \
0163     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0164         dropManager_class.processMotion) \
0165         ((dsm), (clientData), (callData))
0166 
0167 #define DSMProcessDrop(dsm, clientData, callData) \
0168     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0169         dropManager_class.processDrop) \
0170         ((dsm),(clientData), (callData))
0171 
0172 #define DSMOperationChanged(dsm, clientData, callData) \
0173     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0174         dropManager_class.operationChanged) \
0175         ((dsm),(clientData), (callData))
0176 
0177 #define DSMChangeRoot(dsm, clientData, callData) \
0178     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0179         dropManager_class.changeRoot) \
0180         ((dsm), (clientData), (callData))
0181 
0182 #define DSMInsertInfo(dsm, info, call_data) \
0183     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0184         dropManager_class.insertInfo) \
0185         ((dsm), (info), (call_data))
0186 
0187 #define DSMRemoveInfo(dsm, info) \
0188     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0189         dropManager_class.removeInfo) \
0190         ((dsm), (info))
0191 
0192 #define DSMSyncTree(dsm, shell) \
0193     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0194         dropManager_class.syncTree) \
0195         ((dsm), (shell))
0196 
0197 #define DSMGetTreeFromDSM(dsm, shell, dataPtr) \
0198     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0199         dropManager_class.getTreeFromDSM) \
0200         ((dsm), (shell), (dataPtr))
0201 
0202 #define DSMCreateTable(dsm) \
0203     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0204         dropManager_class.createTable) \
0205         ((dsm))
0206 
0207 #define DSMDestroyTable(dsm) \
0208     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0209         dropManager_class.destroyTable) \
0210         ((dsm))
0211 
0212 #define DSMRegisterInfo(dsm, widget, info) \
0213     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0214         dropManager_class.registerInfo) \
0215         ((dsm), (widget), (info))
0216 
0217 #define DSMWidgetToInfo(dsm, widget) \
0218     (XtPointer) ((((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0219         dropManager_class.widgetToInfo) \
0220         ((dsm), (widget)))
0221 
0222 #define DSMUnregisterInfo(dsm, info) \
0223     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
0224         dropManager_class.unregisterInfo) \
0225           ((dsm), (info))
0226 
0227 /* Internal update struct */
0228 
0229 typedef struct __XmDropSiteUpdateInfoRec {
0230   XmDropSiteManagerObject       dsm;
0231   Widget                refWidget;
0232   struct __XmDropSiteUpdateInfoRec  *next;
0233 } _XmDropSiteUpdateInfoRec, *_XmDropSiteUpdateInfo;
0234 
0235 /* DropSiteManager instance record */
0236 
0237 typedef struct _XmDropSiteManagerPart{
0238     XtCallbackProc  notifyProc;
0239     XtCallbackProc  treeUpdateProc;
0240     XtPointer       client_data;
0241     XtPointer       dragUnderData;
0242     XtPointer       curInfo;
0243     Time        curTime;
0244     Position        curX, curY, oldX, oldY;
0245     unsigned char   curDropSiteStatus;
0246     Widget      curDragContext;
0247     Boolean     curAnimate;
0248     unsigned char   curOperations;
0249     unsigned char   curOperation;
0250     XmRegion        curAncestorClipRegion;
0251     XmRegion        newAncestorClipRegion;
0252     XtPointer       dsTable;
0253     XtPointer       dsRoot;
0254     Position        rootX, rootY;
0255     Dimension       rootW, rootH;
0256     XtPointer       clipperList;
0257     _XmDropSiteUpdateInfo   updateInfo;
0258     XtIntervalId    updateTimeOutId;
0259 } XmDropSiteManagerPart, *XmDropSiteManagerPartPtr;
0260 
0261 /* Full instance record declaration */
0262 
0263 typedef struct _XmDropSiteManagerRec{
0264     ObjectPart          object;
0265     XmDropSiteManagerPart   dropManager;
0266 } XmDropSiteManagerRec;
0267 
0268 #ifdef __cplusplus
0269 }  /* Close scope of 'extern "C"' declaration which encloses file. */
0270 #endif
0271 
0272 #endif /* _XmDropSMgrP_h */