Blame lib/Xm/DropSMgrP.h

Packit b099d7
/* 
Packit b099d7
 * Motif
Packit b099d7
 *
Packit b099d7
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are free software; you can
Packit b099d7
 * redistribute them and/or modify them under the terms of the GNU
Packit b099d7
 * Lesser General Public License as published by the Free Software
Packit b099d7
 * Foundation; either version 2 of the License, or (at your option)
Packit b099d7
 * any later version.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are distributed in the hope that
Packit b099d7
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
Packit b099d7
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
Packit b099d7
 * PURPOSE. See the GNU Lesser General Public License for more
Packit b099d7
 * details.
Packit b099d7
 *
Packit b099d7
 * You should have received a copy of the GNU Lesser General Public
Packit b099d7
 * License along with these librararies and programs; if not, write
Packit b099d7
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
Packit b099d7
 * Floor, Boston, MA 02110-1301 USA
Packit b099d7
*/ 
Packit b099d7
/* 
Packit b099d7
 * HISTORY
Packit b099d7
*/ 
Packit b099d7
/*   $XConsortium: DropSMgrP.h /main/11 1995/07/14 10:31:14 drk $ */
Packit b099d7
/*
Packit b099d7
*  (c) Copyright 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
Packit b099d7
Packit b099d7
#ifndef _XmDropSMgrP_h
Packit b099d7
#define _XmDropSMgrP_h
Packit b099d7
Packit b099d7
#include <Xm/XmP.h>
Packit b099d7
#include <Xm/DropSMgr.h>
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
extern "C" {
Packit b099d7
#endif
Packit b099d7
Packit b099d7
typedef void (*XmDSMCreateInfoProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget, ArgList, Cardinal);
Packit b099d7
typedef void (*XmDSMDestroyInfoProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget);
Packit b099d7
typedef void (*XmDSMStartUpdateProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget);
Packit b099d7
typedef void (*XmDSMRetrieveInfoProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget, ArgList, Cardinal);
Packit b099d7
typedef void (*XmDSMUpdateInfoProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget, ArgList, Cardinal);
Packit b099d7
typedef void (*XmDSMEndUpdateProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget);
Packit b099d7
typedef void (*XmDSMUpdateProc)
Packit b099d7
	(XmDropSiteManagerObject, XtPointer, XtPointer);
Packit b099d7
typedef void (*XmDSMProcessMotionProc)
Packit b099d7
	(XmDropSiteManagerObject, XtPointer, XtPointer);
Packit b099d7
typedef void (*XmDSMProcessDropProc)
Packit b099d7
	(XmDropSiteManagerObject, XtPointer, XtPointer);
Packit b099d7
typedef void (*XmDSMOperationChangedProc)
Packit b099d7
	(XmDropSiteManagerObject, XtPointer, XtPointer);
Packit b099d7
typedef void (*XmDSMChangeRootProc)
Packit b099d7
	(XmDropSiteManagerObject, XtPointer, XtPointer);
Packit b099d7
typedef void (*XmDSMInsertInfoProc)
Packit b099d7
	(XmDropSiteManagerObject, XtPointer, XtPointer);
Packit b099d7
typedef void (*XmDSMRemoveInfoProc)
Packit b099d7
	(XmDropSiteManagerObject, XtPointer);
Packit b099d7
typedef void (*XmDSMSyncTreeProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget);
Packit b099d7
typedef int  (*XmDSMGetTreeFromDSMProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget, XtPointer);
Packit b099d7
typedef void (*XmDSMCreateDSInfoTable)
Packit b099d7
	(XmDropSiteManagerObject);
Packit b099d7
typedef void (*XmDSMDestroyDSInfoTable)
Packit b099d7
	(XmDropSiteManagerObject);
Packit b099d7
typedef void (*XmDSMRegisterInfoProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget, XtPointer);
Packit b099d7
typedef XtPointer (*XmDSMWidgetToInfoProc)
Packit b099d7
	(XmDropSiteManagerObject, Widget);
Packit b099d7
typedef void (*XmDSMUnregisterInfoProc)
Packit b099d7
	(XmDropSiteManagerObject, XtPointer);
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    XmDSMCreateInfoProc		createInfo;
Packit b099d7
    XmDSMDestroyInfoProc	destroyInfo;
Packit b099d7
    XmDSMStartUpdateProc	startUpdate;
Packit b099d7
    XmDSMRetrieveInfoProc	retrieveInfo;
Packit b099d7
    XmDSMUpdateInfoProc		updateInfo;
Packit b099d7
    XmDSMEndUpdateProc		endUpdate;
Packit b099d7
    
Packit b099d7
    /* Used by DragController Object */
Packit b099d7
    
Packit b099d7
    XmDSMUpdateProc		updateDSM;
Packit b099d7
    
Packit b099d7
    /* Used by update proc */
Packit b099d7
    
Packit b099d7
    XmDSMProcessMotionProc	processMotion;
Packit b099d7
    XmDSMProcessDropProc	processDrop;
Packit b099d7
    XmDSMOperationChangedProc	operationChanged;
Packit b099d7
    XmDSMChangeRootProc		changeRoot;
Packit b099d7
    
Packit b099d7
    /* Used to manage DropSites */
Packit b099d7
    
Packit b099d7
    XmDSMInsertInfoProc		insertInfo;
Packit b099d7
    /* Need a get and a put function for update? */
Packit b099d7
    XmDSMRemoveInfoProc		removeInfo;
Packit b099d7
Packit b099d7
	/* Used to manage the pre-register information */
Packit b099d7
Packit b099d7
    XmDSMSyncTreeProc		syncTree;
Packit b099d7
    XmDSMGetTreeFromDSMProc	getTreeFromDSM;
Packit b099d7
    
Packit b099d7
    /* Used to hash between widgets and info */
Packit b099d7
    
Packit b099d7
    XmDSMCreateDSInfoTable	createTable;
Packit b099d7
    XmDSMDestroyDSInfoTable 	destroyTable;
Packit b099d7
    XmDSMRegisterInfoProc	registerInfo;
Packit b099d7
    XmDSMWidgetToInfoProc	widgetToInfo;
Packit b099d7
    XmDSMUnregisterInfoProc 	unregisterInfo;
Packit b099d7
    
Packit b099d7
    XtPointer			extension;
Packit b099d7
} XmDropSiteManagerClassPart;
Packit b099d7
Packit b099d7
/*  Full class record declaration for dropSite class  */
Packit b099d7
Packit b099d7
typedef struct _XmDropSiteManagerClassRec{
Packit b099d7
    ObjectClassPart		object_class;
Packit b099d7
    XmDropSiteManagerClassPart		dropManager_class;
Packit b099d7
} XmDropSiteManagerClassRec;
Packit b099d7
Packit b099d7
externalref XmDropSiteManagerClassRec 	xmDropSiteManagerClassRec;
Packit b099d7
Packit b099d7
/* Macros for calling methods */
Packit b099d7
Packit b099d7
#define DSMCreateInfo(dsm, widget, args, numArgs) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.createInfo) \
Packit b099d7
		((dsm), (widget), (args), (numArgs))
Packit b099d7
Packit b099d7
#define DSMDestroyInfo(dsm, widget) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.destroyInfo) \
Packit b099d7
		((dsm), (widget))
Packit b099d7
Packit b099d7
#define DSMStartUpdate(dsm, widget) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.startUpdate) \
Packit b099d7
		((dsm), (widget))
Packit b099d7
Packit b099d7
#define DSMRetrieveInfo(dsm, widget, args, numArgs) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.retrieveInfo) \
Packit b099d7
		((dsm), (widget), (args), (numArgs))
Packit b099d7
Packit b099d7
#define DSMUpdateInfo(dsm, widget, args, numArgs) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.updateInfo) \
Packit b099d7
		((dsm), (widget), (args), (numArgs))
Packit b099d7
Packit b099d7
#define DSMEndUpdate(dsm, widget) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.endUpdate) \
Packit b099d7
		((dsm), (widget))
Packit b099d7
Packit b099d7
#define DSMUpdate(dsm, clientData, callData) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.updateDSM) \
Packit b099d7
		((dsm), (clientData), (callData))
Packit b099d7
Packit b099d7
#define DSMProcessMotion(dsm, clientData, callData) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.processMotion) \
Packit b099d7
		((dsm), (clientData), (callData))
Packit b099d7
Packit b099d7
#define DSMProcessDrop(dsm, clientData, callData) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.processDrop) \
Packit b099d7
		((dsm),(clientData), (callData))
Packit b099d7
Packit b099d7
#define DSMOperationChanged(dsm, clientData, callData) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.operationChanged) \
Packit b099d7
		((dsm),(clientData), (callData))
Packit b099d7
Packit b099d7
#define DSMChangeRoot(dsm, clientData, callData) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.changeRoot) \
Packit b099d7
		((dsm), (clientData), (callData))
Packit b099d7
Packit b099d7
#define DSMInsertInfo(dsm, info, call_data) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.insertInfo) \
Packit b099d7
		((dsm), (info), (call_data))
Packit b099d7
Packit b099d7
#define DSMRemoveInfo(dsm, info) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.removeInfo) \
Packit b099d7
		((dsm), (info))
Packit b099d7
Packit b099d7
#define DSMSyncTree(dsm, shell) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.syncTree) \
Packit b099d7
		((dsm), (shell))
Packit b099d7
Packit b099d7
#define DSMGetTreeFromDSM(dsm, shell, dataPtr) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.getTreeFromDSM) \
Packit b099d7
		((dsm), (shell), (dataPtr))
Packit b099d7
Packit b099d7
#define DSMCreateTable(dsm) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.createTable) \
Packit b099d7
		((dsm))
Packit b099d7
Packit b099d7
#define DSMDestroyTable(dsm) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.destroyTable) \
Packit b099d7
		((dsm))
Packit b099d7
Packit b099d7
#define DSMRegisterInfo(dsm, widget, info) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.registerInfo) \
Packit b099d7
		((dsm), (widget), (info))
Packit b099d7
Packit b099d7
#define DSMWidgetToInfo(dsm, widget) \
Packit b099d7
	(XtPointer) ((((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.widgetToInfo) \
Packit b099d7
		((dsm), (widget)))
Packit b099d7
Packit b099d7
#define DSMUnregisterInfo(dsm, info) \
Packit b099d7
	(((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
Packit b099d7
		dropManager_class.unregisterInfo) \
Packit b099d7
		  ((dsm), (info))
Packit b099d7
Packit b099d7
/* Internal update struct */
Packit b099d7
Packit b099d7
typedef struct __XmDropSiteUpdateInfoRec {
Packit b099d7
  XmDropSiteManagerObject		dsm;
Packit b099d7
  Widget				refWidget;
Packit b099d7
  struct __XmDropSiteUpdateInfoRec	*next;
Packit b099d7
} _XmDropSiteUpdateInfoRec, *_XmDropSiteUpdateInfo;
Packit b099d7
Packit b099d7
/* DropSiteManager instance record */
Packit b099d7
Packit b099d7
typedef struct _XmDropSiteManagerPart{
Packit b099d7
    XtCallbackProc	notifyProc;
Packit b099d7
    XtCallbackProc	treeUpdateProc;
Packit b099d7
    XtPointer		client_data;
Packit b099d7
    XtPointer		dragUnderData;
Packit b099d7
    XtPointer		curInfo;
Packit b099d7
    Time		curTime;
Packit b099d7
    Position		curX, curY, oldX, oldY;
Packit b099d7
    unsigned char	curDropSiteStatus;
Packit b099d7
    Widget		curDragContext;
Packit b099d7
    Boolean		curAnimate;
Packit b099d7
    unsigned char	curOperations;
Packit b099d7
    unsigned char	curOperation;
Packit b099d7
    XmRegion		curAncestorClipRegion;
Packit b099d7
    XmRegion		newAncestorClipRegion;
Packit b099d7
    XtPointer		dsTable;
Packit b099d7
    XtPointer		dsRoot;
Packit b099d7
    Position		rootX, rootY;
Packit b099d7
    Dimension		rootW, rootH;
Packit b099d7
    XtPointer		clipperList;
Packit b099d7
    _XmDropSiteUpdateInfo	updateInfo;
Packit b099d7
    XtIntervalId	updateTimeOutId;
Packit b099d7
} XmDropSiteManagerPart, *XmDropSiteManagerPartPtr;
Packit b099d7
Packit b099d7
/* Full instance record declaration */
Packit b099d7
Packit b099d7
typedef struct _XmDropSiteManagerRec{
Packit b099d7
    ObjectPart			object;
Packit b099d7
    XmDropSiteManagerPart	dropManager;
Packit b099d7
} XmDropSiteManagerRec;
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
}  /* Close scope of 'extern "C"' declaration which encloses file. */
Packit b099d7
#endif
Packit b099d7
Packit b099d7
#endif /* _XmDropSMgrP_h */