1 /** 2 * 3 * $Id: DropSMgrP.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_DROPSMGRP_H 27 #define _XM_DROPSMGRP_H 28 29 #include <Xm/XmP.h> 30 #include <Xm/DropSMgr.h> 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 typedef void (*XmDSMCreateInfoProc)(XmDropSiteManagerObject, 37 Widget, 38 ArgList, 39 Cardinal); 40 typedef void (*XmDSMDestroyInfoProc)(XmDropSiteManagerObject, 41 Widget); 42 typedef void (*XmDSMStartUpdateProc)(XmDropSiteManagerObject, 43 Widget); 44 typedef void (*XmDSMRetrieveInfoProc)(XmDropSiteManagerObject, 45 Widget, 46 ArgList, 47 Cardinal); 48 typedef void (*XmDSMUpdateInfoProc)(XmDropSiteManagerObject, 49 Widget, 50 ArgList, 51 Cardinal); 52 typedef void (*XmDSMEndUpdateProc)(XmDropSiteManagerObject, 53 Widget); 54 typedef void (*XmDSMUpdateProc)(XmDropSiteManagerObject, 55 XtPointer, 56 XtPointer); 57 typedef void (*XmDSMProcessMotionProc)(XmDropSiteManagerObject, 58 XtPointer, 59 XtPointer); 60 typedef void (*XmDSMProcessDropProc)(XmDropSiteManagerObject, 61 XtPointer, 62 XtPointer); 63 typedef void (*XmDSMOperationChangedProc)(XmDropSiteManagerObject, 64 XtPointer, 65 XtPointer); 66 typedef void (*XmDSMChangeRootProc)(XmDropSiteManagerObject, 67 XtPointer, 68 XtPointer); 69 typedef void (*XmDSMInsertInfoProc)(XmDropSiteManagerObject, 70 XtPointer, 71 XtPointer); 72 typedef void (*XmDSMRemoveInfoProc)(XmDropSiteManagerObject, 73 XtPointer); 74 typedef void (*XmDSMSyncTreeProc)(XmDropSiteManagerObject, 75 Widget); 76 typedef int (*XmDSMGetTreeFromDSMProc)(XmDropSiteManagerObject, 77 Widget, 78 XtPointer); 79 typedef void (*XmDSMCreateDSInfoTable)(XmDropSiteManagerObject); 80 typedef void (*XmDSMDestroyDSInfoTable)(XmDropSiteManagerObject); 81 typedef void (*XmDSMRegisterInfoProc)(XmDropSiteManagerObject, 82 Widget, 83 XtPointer); 84 typedef XtPointer (*XmDSMWidgetToInfoProc)(XmDropSiteManagerObject, 85 Widget); 86 typedef void (*XmDSMUnregisterInfoProc)(XmDropSiteManagerObject, 87 XtPointer); 88 89 typedef struct { 90 XmDSMCreateInfoProc createInfo; 91 XmDSMDestroyInfoProc destroyInfo; 92 XmDSMStartUpdateProc startUpdate; 93 XmDSMRetrieveInfoProc retrieveInfo; 94 XmDSMUpdateInfoProc updateInfo; 95 XmDSMEndUpdateProc endUpdate; 96 97 XmDSMUpdateProc updateDSM; 98 99 XmDSMProcessMotionProc processMotion; 100 XmDSMProcessDropProc processDrop; 101 XmDSMOperationChangedProc operationChanged; 102 XmDSMChangeRootProc changeRoot; 103 104 XmDSMInsertInfoProc insertInfo; 105 XmDSMRemoveInfoProc removeInfo; 106 107 XmDSMSyncTreeProc syncTree; 108 XmDSMGetTreeFromDSMProc getTreeFromDSM; 109 110 XmDSMCreateDSInfoTable createTable; 111 XmDSMDestroyDSInfoTable destroyTable; 112 XmDSMRegisterInfoProc registerInfo; 113 XmDSMWidgetToInfoProc widgetToInfo; 114 XmDSMUnregisterInfoProc unregisterInfo; 115 116 XtPointer extension; 117 } XmDropSiteManagerClassPart; 118 119 typedef struct _XmDropSiteManagerClassRec { 120 ObjectClassPart object_class; 121 XmDropSiteManagerClassPart dropManager_class; 122 } XmDropSiteManagerClassRec; 123 124 XMLIBEXPORT extern XmDropSiteManagerClassRec xmDropSiteManagerClassRec; 125 126 #define DSMCreateInfo(dsm, widget, args, numArgs) \ 127 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 128 dropManager_class.createInfo) \ 129 ((dsm), (widget), (args), (numArgs)) 130 131 #define DSMDestroyInfo(dsm, widget) \ 132 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 133 dropManager_class.destroyInfo) \ 134 ((dsm), (widget)) 135 136 #define DSMStartUpdate(dsm, widget) \ 137 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 138 dropManager_class.startUpdate) \ 139 ((dsm), (widget)) 140 141 #define DSMRetrieveInfo(dsm, widget, args, numArgs) \ 142 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 143 dropManager_class.retrieveInfo) \ 144 ((dsm), (widget), (args), (numArgs)) 145 146 #define DSMUpdateInfo(dsm, widget, args, numArgs) \ 147 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 148 dropManager_class.updateInfo) \ 149 ((dsm), (widget), (args), (numArgs)) 150 151 #define DSMEndUpdate(dsm, widget) \ 152 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 153 dropManager_class.endUpdate) \ 154 ((dsm), (widget)) 155 156 #define DSMUpdate(dsm, clientData, callData) \ 157 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 158 dropManager_class.updateDSM) \ 159 ((dsm), (clientData), (callData)) 160 161 #define DSMProcessMotion(dsm, clientData, callData) \ 162 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 163 dropManager_class.processMotion) \ 164 ((dsm), (clientData), (callData)) 165 166 #define DSMProcessDrop(dsm, clientData, callData) \ 167 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 168 dropManager_class.processDrop) \ 169 ((dsm),(clientData), (callData)) 170 171 #define DSMOperationChanged(dsm, clientData, callData) \ 172 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 173 dropManager_class.operationChanged) \ 174 ((dsm),(clientData), (callData)) 175 176 #define DSMChangeRoot(dsm, clientData, callData) \ 177 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 178 dropManager_class.changeRoot) \ 179 ((dsm), (clientData), (callData)) 180 181 #define DSMInsertInfo(dsm, info, call_data) \ 182 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 183 dropManager_class.insertInfo) \ 184 ((dsm), (info), (call_data)) 185 186 #define DSMRemoveInfo(dsm, info) \ 187 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 188 dropManager_class.removeInfo) \ 189 ((dsm), (info)) 190 191 #define DSMSyncTree(dsm, shell) \ 192 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 193 dropManager_class.syncTree) \ 194 ((dsm), (shell)) 195 196 #define DSMGetTreeFromDSM(dsm, shell, dataPtr) \ 197 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 198 dropManager_class.getTreeFromDSM) \ 199 ((dsm), (shell), (dataPtr)) 200 201 #define DSMCreateTable(dsm) \ 202 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 203 dropManager_class.createTable) \ 204 ((dsm)) 205 206 #define DSMDestroyTable(dsm) \ 207 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 208 dropManager_class.destroyTable) \ 209 ((dsm)) 210 211 #define DSMRegisterInfo(dsm, widget, info) \ 212 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 213 dropManager_class.registerInfo) \ 214 ((dsm), (widget), (info)) 215 216 #define DSMWidgetToInfo(dsm, widget) \ 217 (XtPointer) ((((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 218 dropManager_class.widgetToInfo) \ 219 ((dsm), (widget))) 220 221 #define DSMUnregisterInfo(dsm, info) \ 222 (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \ 223 dropManager_class.unregisterInfo) \ 224 ((dsm), (info)) 225 226 typedef struct __XmDropSiteUpdateInfoRec { 227 XmDropSiteManagerObject dsm; 228 Widget refWidget; 229 XtPointer *next; 230 } _XmDropSiteUpdateInfoRec, *_XmDropSiteUpdateInfo; 231 232 typedef struct _XmDropSiteManagerPart { 233 XtCallbackProc notifyProc; 234 XtCallbackProc treeUpdateProc; 235 XtPointer client_data; 236 XtPointer dragUnderData; 237 XtPointer curInfo; 238 Time curTime; 239 Position curX, curY, oldX, oldY; 240 unsigned char curDropSiteStatus; 241 Widget curDragContext; 242 Boolean curAnimate; 243 unsigned char curOperations; 244 unsigned char curOperation; 245 XmRegion curAncestorClipRegion; 246 XmRegion newAncestorClipRegion; 247 XtPointer dsTable; 248 XtPointer dsRoot; 249 Position rootX, rootY; 250 Dimension rootW, rootH; 251 XtPointer clipperList; 252 _XmDropSiteUpdateInfo updateInfo; 253 } XmDropSiteManagerPart, *XmDropSiteManagerPartPtr; 254 255 typedef struct _XmDropSiteManagerRec { 256 ObjectPart object; 257 XmDropSiteManagerPart dropManager; 258 } XmDropSiteManagerRec; 259 260 XMLIBEXPORT extern void _XmDSMUpdate(XmDropSiteManagerObject dsm, 261 XtPointer clientData, 262 XtPointer callData); 263 XMLIBEXPORT extern int _XmDSMGetTreeFromDSM(XmDropSiteManagerObject dsm, 264 Widget shell, 265 XtPointer dataPtr); 266 XMLIBEXPORT extern Boolean _XmDropSiteShell(Widget widget); 267 XMLIBEXPORT extern Boolean _XmDropSiteWrapperCandidate(Widget widget); 268 XMLIBEXPORT extern Widget _XmGetActiveDropSite(Widget widget); 269 XMLIBEXPORT extern void _XmSyncDropSiteTree(Widget shell); 270 XMLIBEXPORT extern void _XmIEndUpdate(XtPointer client_data, XtIntervalId *interval_id); 271 272 #ifdef __cplusplus 273 } 274 #endif 275 276 #endif /* _XM_DROPSMGRP_H */ 277