Blame lib/Xm/DragICCI.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
/*   $TOG: DragICCI.h /main/14 1997/06/18 17:38:28 samborn $ */
Packit b099d7
/*
Packit b099d7
*  (c) Copyright 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
Packit b099d7
#ifndef _XmDragICCI_h
Packit b099d7
#define _XmDragICCI_h
Packit b099d7
Packit b099d7
#include <Xm/XmP.h>
Packit b099d7
#include <Xm/Display.h>
Packit b099d7
#include <X11/Xmd.h>
Packit b099d7
#include "DragCI.h"
Packit b099d7
#include "DropSMgrI.h"
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
extern "C" {
Packit b099d7
#endif
Packit b099d7
Packit b099d7
Packit b099d7
/*
Packit b099d7
 *  Xm ICC internal definitions 
Packit b099d7
 *
Packit b099d7
 */
Packit b099d7
Packit b099d7
#define MAXSHORT 32767
Packit b099d7
#define MINSHORT -MAXSHORT 
Packit b099d7
Packit b099d7
/*
Packit b099d7
 *  Swap the byte order of 4- and 2- byte quantities.
Packit b099d7
 *  These macros work for bitfields.
Packit b099d7
 */
Packit b099d7
Packit b099d7
#define swap4bytes(l) {\
Packit b099d7
	struct {\
Packit b099d7
	  unsigned t :32;\
Packit b099d7
	} bit32;\
Packit b099d7
        char n,	*tp = (char *) &bit32;\
Packit b099d7
	bit32.t = l;\
Packit b099d7
	n = tp[0]; tp[0] = tp[3]; tp[3] = n;\
Packit b099d7
	n = tp[1]; tp[1] = tp[2]; tp[2] = n;\
Packit b099d7
        l = bit32.t;\
Packit b099d7
}
Packit b099d7
Packit b099d7
#define swap2bytes(s) {\
Packit b099d7
	struct {\
Packit b099d7
	  unsigned t :16;\
Packit b099d7
	} bit16;\
Packit b099d7
        char n, *tp = (char *) &bit16;\
Packit b099d7
	bit16.t = s;\
Packit b099d7
	n = tp[0]; tp[0] = tp[1]; tp[1] = n;\
Packit b099d7
        s = bit16.t;\
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
/* the message type field contains the following:
Packit b099d7
 *
Packit b099d7
 *  80      originator
Packit b099d7
 *  7F      message_type
Packit b099d7
 */
Packit b099d7
Packit b099d7
    BYTE		message_type;
Packit b099d7
    BYTE		byte_order;
Packit b099d7
/*
Packit b099d7
 * the flags field contains the following:
Packit b099d7
 *
Packit b099d7
 *	000F	operation
Packit b099d7
 *	00F0	dropSiteStatus
Packit b099d7
 *	0F00	operations
Packit b099d7
 *	F000	completionStatus
Packit b099d7
 */
Packit b099d7
    CARD16		flags B16;
Packit b099d7
    CARD32		time B32;
Packit b099d7
}xmICCAnyMessageStruct, *xmICCAnyMessage;
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    BYTE		message_type;
Packit b099d7
    BYTE		byte_order;
Packit b099d7
    CARD16		flags B16;
Packit b099d7
    CARD32		time B32;
Packit b099d7
    CARD32		src_window B32;
Packit b099d7
    CARD32		icc_handle B32;
Packit b099d7
}xmICCTopLevelEnterMessageStruct;
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    BYTE		message_type;
Packit b099d7
    BYTE		byte_order;
Packit b099d7
    CARD16		flags B16;
Packit b099d7
    CARD32		time B32;
Packit b099d7
    CARD32		src_window B32;
Packit b099d7
}xmICCTopLevelLeaveMessageStruct;
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    BYTE		message_type;
Packit b099d7
    BYTE		byte_order;
Packit b099d7
    CARD16		flags B16;
Packit b099d7
    CARD32		time B32;
Packit b099d7
    INT16		x B16;
Packit b099d7
    INT16		y B16;
Packit b099d7
}xmICCDragMotionMessageStruct;
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    BYTE		message_type;
Packit b099d7
    BYTE		byte_order;
Packit b099d7
    CARD16		flags B16;
Packit b099d7
    CARD32		time B32;
Packit b099d7
}xmICCOperationChangedMessageStruct;
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    BYTE		message_type;
Packit b099d7
    BYTE		byte_order;
Packit b099d7
    CARD16		flags B16;
Packit b099d7
    CARD32		time B32;
Packit b099d7
    INT16		x B16;
Packit b099d7
    INT16		y B16;
Packit b099d7
}xmICCDropSiteEnterMessageStruct;
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    BYTE		message_type;
Packit b099d7
    BYTE		byte_order;
Packit b099d7
    CARD16		flags B16;
Packit b099d7
    CARD32		time B32;
Packit b099d7
}xmICCDropSiteLeaveMessageStruct;
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    BYTE		message_type;
Packit b099d7
    BYTE		byte_order;
Packit b099d7
    CARD16		flags B16;
Packit b099d7
    CARD32		time B32;
Packit b099d7
    INT16		x B16;
Packit b099d7
    INT16		y B16;
Packit b099d7
    CARD32		icc_handle B32;
Packit b099d7
    CARD32		src_window B32;
Packit b099d7
}xmICCDropMessageStruct;
Packit b099d7
Packit b099d7
typedef union _xmICCMessageStruct{
Packit b099d7
    xmICCAnyMessageStruct			any;
Packit b099d7
    xmICCTopLevelEnterMessageStruct		topLevelEnter;
Packit b099d7
    xmICCTopLevelLeaveMessageStruct		topLevelLeave;
Packit b099d7
    xmICCDragMotionMessageStruct		dragMotion;
Packit b099d7
    xmICCOperationChangedMessageStruct		operationChanged;
Packit b099d7
    xmICCDropSiteEnterMessageStruct		dropSiteEnter;
Packit b099d7
    xmICCDropSiteLeaveMessageStruct		dropSiteLeave;
Packit b099d7
    xmICCDropMessageStruct			drop;
Packit b099d7
}xmICCMessageStruct, *xmICCMessage;
Packit b099d7
Packit b099d7
Packit b099d7
typedef union _XmICCCallbackStruct{
Packit b099d7
    XmAnyICCCallbackStruct			any;
Packit b099d7
    XmTopLevelEnterCallbackStruct		topLevelEnter;
Packit b099d7
    XmTopLevelLeaveCallbackStruct		topLevelLeave;
Packit b099d7
    XmDragMotionCallbackStruct			dragMotion;
Packit b099d7
    XmOperationChangedCallbackStruct		operationChanged;
Packit b099d7
    XmDropSiteEnterCallbackStruct		dropSiteEnter;
Packit b099d7
    XmDropSiteLeaveCallbackStruct		dropSiteLeave;
Packit b099d7
    XmDropSiteTreeAddCallbackStruct		dropSiteTreeAdd;
Packit b099d7
    XmDropSiteTreeRemoveCallbackStruct		dropSiteTreeRemove;
Packit b099d7
    XmDropSiteTreeUpdateCallbackStruct		dropSiteTreeUpdate;
Packit b099d7
}XmICCCallbackStruct, *XmICCCallback;
Packit b099d7
Packit b099d7
typedef struct _xmByteBufRec{
Packit b099d7
    BYTE	*bytes;
Packit b099d7
    BYTE	*stack;
Packit b099d7
    BYTE	*curr;
Packit b099d7
    size_t	size;
Packit b099d7
    Cardinal	max;
Packit b099d7
}xmByteBufRec; 
Packit b099d7
Packit b099d7
typedef struct _xmPropertyBufferRec{
Packit b099d7
    xmByteBufRec	data;
Packit b099d7
    xmByteBufRec	heap;
Packit b099d7
}xmPropertyBufferRec, *xmPropertyBuffer;
Packit b099d7
Packit b099d7
/* for argument passing between DropSite and ICC routines */
Packit b099d7
Packit b099d7
typedef struct _XmICCDropSiteHeaderRec {
Packit b099d7
    unsigned char	dropType;
Packit b099d7
    unsigned char	dropActivity;
Packit b099d7
    unsigned char	traversalType;
Packit b099d7
    unsigned char	operations;
Packit b099d7
    unsigned char	animationStyle;
Packit b099d7
    unsigned short	importTargetsID;
Packit b099d7
    XmRegion		region;
Packit b099d7
} XmICCDropSiteHeaderRec, *XmICCDropSiteHeader;
Packit b099d7
Packit b099d7
typedef struct _XmICCDropSiteNoneDataRec {
Packit b099d7
    Dimension		borderWidth;
Packit b099d7
} XmICCDropSiteNoneDataRec, *XmICCDropSiteNoneData;
Packit b099d7
Packit b099d7
typedef struct _XmICCDropSiteHighlightDataRec {
Packit b099d7
    Dimension		borderWidth;
Packit b099d7
    Dimension		highlightThickness;
Packit b099d7
    Pixel		background;
Packit b099d7
    Pixel		highlightColor;
Packit b099d7
    Pixmap		highlightPixmap;
Packit b099d7
} XmICCDropSiteHighlightDataRec, *XmICCDropSiteHighlightData;
Packit b099d7
Packit b099d7
typedef struct _XmICCDropSiteShadowDataRec {
Packit b099d7
    Dimension		borderWidth;
Packit b099d7
    Dimension		highlightThickness;
Packit b099d7
    Dimension		shadowThickness;	
Packit b099d7
    Pixel		foreground;
Packit b099d7
    Pixel		topShadowColor;
Packit b099d7
    Pixmap		topShadowPixmap;
Packit b099d7
    Pixel		bottomShadowColor;
Packit b099d7
    Pixmap		bottomShadowPixmap;
Packit b099d7
} XmICCDropSiteShadowDataRec, *XmICCDropSiteShadowData;
Packit b099d7
Packit b099d7
typedef struct _XmICCDropSitePixmapDataRec {
Packit b099d7
    Dimension		borderWidth;
Packit b099d7
    Dimension		highlightThickness;
Packit b099d7
    Dimension		shadowThickness;	
Packit b099d7
    Pixel		foreground;
Packit b099d7
    Pixel		background;
Packit b099d7
    Pixmap		animationPixmap;
Packit b099d7
    Cardinal		animationPixmapDepth;
Packit b099d7
    Pixmap		animationMask;
Packit b099d7
} XmICCDropSitePixmapDataRec, *XmICCDropSitePixmapData;
Packit b099d7
Packit b099d7
typedef struct _XmICCDropSiteNoneRec {
Packit b099d7
    XmICCDropSiteHeaderRec		header;
Packit b099d7
    XmICCDropSiteNoneDataRec	animation_data;
Packit b099d7
} XmICCDropSiteNoneRec, *XmICCDropSiteNone;
Packit b099d7
Packit b099d7
typedef struct _XmICCDropSiteHighlightRec {
Packit b099d7
    XmICCDropSiteHeaderRec		header;
Packit b099d7
    XmICCDropSiteHighlightDataRec	animation_data;
Packit b099d7
} XmICCDropSiteHighlightRec, *XmICCDropSiteHighlight;
Packit b099d7
Packit b099d7
typedef struct _XmICCDropSiteShadowRec {
Packit b099d7
    XmICCDropSiteHeaderRec	header;
Packit b099d7
    XmICCDropSiteShadowDataRec	animation_data;
Packit b099d7
} XmICCDropSiteShadowRec, *XmICCDropSiteShadow;
Packit b099d7
Packit b099d7
typedef struct _XmICCDropSitePixmapRec {
Packit b099d7
    XmICCDropSiteHeaderRec	header;
Packit b099d7
    XmICCDropSitePixmapDataRec	animation_data;
Packit b099d7
} XmICCDropSitePixmapRec, *XmICCDropSitePixmap;
Packit b099d7
Packit b099d7
typedef union _XmICCDropSiteInfoStruct {
Packit b099d7
    XmICCDropSiteHeaderRec	header;
Packit b099d7
    XmICCDropSiteHighlightRec	highlightDS;
Packit b099d7
    XmICCDropSiteShadowRec	shadowDS;
Packit b099d7
    XmICCDropSitePixmapRec	pixmapDS;
Packit b099d7
} XmICCDropSiteInfoStruct, *XmICCDropSiteInfo;
Packit b099d7
Packit b099d7
typedef struct _XmReceiverDSTreeStruct{
Packit b099d7
    xmPropertyBufferRec	propBufRec;
Packit b099d7
    unsigned char	byteOrder;
Packit b099d7
    Cardinal		numDropSites;
Packit b099d7
    Cardinal		currDropSite;
Packit b099d7
}XmReceiverDSTreeStruct, *XmReceiverDSTree;
Packit b099d7
Packit b099d7
/*
Packit b099d7
 *  The following structures are for property access.
Packit b099d7
 *  They must have 64-bit multiple lengths to support 64-bit architectures.
Packit b099d7
 */
Packit b099d7
Packit b099d7
typedef struct _xmDragInitiatorInfoStruct{
Packit b099d7
    BYTE	byte_order;
Packit b099d7
    BYTE	protocol_version;
Packit b099d7
    CARD16	targets_index B16;
Packit b099d7
    CARD32	icc_handle B32;
Packit b099d7
}xmDragInitiatorInfoStruct;
Packit b099d7
Packit b099d7
typedef struct _xmDragReceiverInfoStruct{
Packit b099d7
    BYTE	byte_order;
Packit b099d7
    BYTE	protocol_version;
Packit b099d7
    BYTE	drag_protocol_style;
Packit b099d7
    BYTE	pad1;
Packit b099d7
    CARD32	proxy_window B32;
Packit b099d7
    CARD16	num_drop_sites B16;
Packit b099d7
    CARD16	pad2 B16;
Packit b099d7
    CARD32	heap_offset B32;
Packit b099d7
}xmDragReceiverInfoStruct;
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    INT16	x1 B16;
Packit b099d7
    INT16	x2 B16;
Packit b099d7
    INT16	y1 B16;
Packit b099d7
    INT16	y2 B16;
Packit b099d7
}xmICCRegBoxRec;
Packit b099d7
Packit b099d7
typedef struct _xmDSHeaderStruct{
Packit b099d7
/*
Packit b099d7
 * the flags field contains the following:
Packit b099d7
 *
Packit b099d7
 *	0003	traversalType
Packit b099d7
 *	000C	dropActivity
Packit b099d7
 *	00F0	dropType
Packit b099d7
 *	0F00	operations
Packit b099d7
 *	F000	animationStyle
Packit b099d7
 */
Packit b099d7
    CARD16	flags B16;
Packit b099d7
    CARD16	import_targets_id B16;
Packit b099d7
    CARD32	dsRegionNumBoxes B32;
Packit b099d7
}xmDSHeaderStruct, *xmDSHeader;
Packit b099d7
Packit b099d7
typedef struct _xmDSNoneDataStruct{
Packit b099d7
    CARD16	borderWidth B16;
Packit b099d7
    CARD16	pad1 B16;
Packit b099d7
    CARD32	pad2 B32;
Packit b099d7
}xmDSNoneDataStruct, *xmDSNoneData;
Packit b099d7
Packit b099d7
typedef struct _xmDSHighlightDataStruct{
Packit b099d7
    CARD16	borderWidth B16;
Packit b099d7
    CARD16	highlightThickness B16;
Packit b099d7
Packit b099d7
    CARD32	background B32;
Packit b099d7
    CARD32	highlightColor B32;
Packit b099d7
    CARD32	highlightPixmap B32;
Packit b099d7
}xmDSHighlightDataStruct, *xmDSHighlightData;
Packit b099d7
Packit b099d7
typedef struct _xmDSShadowDataStruct{
Packit b099d7
    CARD16	borderWidth B16;
Packit b099d7
    CARD16	highlightThickness B16;
Packit b099d7
    CARD16	shadowThickness B16;
Packit b099d7
    CARD16	pad1 B16;
Packit b099d7
Packit b099d7
    CARD32	foreground B32;
Packit b099d7
    CARD32	topShadowColor B32;
Packit b099d7
    CARD32	bottomShadowColor B32;
Packit b099d7
    CARD32	topShadowPixmap B32;
Packit b099d7
    CARD32	bottomShadowPixmap B32;
Packit b099d7
    CARD32	pad2 B32;
Packit b099d7
}xmDSShadowDataStruct, *xmDSShadowData;
Packit b099d7
Packit b099d7
typedef struct _xmDSPixmapDataStruct{
Packit b099d7
    CARD16	borderWidth B16;
Packit b099d7
    CARD16	highlightThickness B16;
Packit b099d7
    CARD16	shadowThickness B16;
Packit b099d7
    CARD16	animationPixmapDepth B16;
Packit b099d7
Packit b099d7
    CARD32	foreground B32;
Packit b099d7
    CARD32	background B32;
Packit b099d7
    CARD32	animationPixmap B32;
Packit b099d7
    CARD32	animationMask B32;
Packit b099d7
}xmDSPixmapDataStruct, *xmDSPixmapData;
Packit b099d7
Packit b099d7
Packit b099d7
/* Macros for the manipulation of ICCmessages and xmDSData */
Packit b099d7
Packit b099d7
#define _XM_TRAVERSAL_TYPE_MASK ((CARD16) 0x0003)
Packit b099d7
#define _XM_TRAVERSAL_TYPE_SHIFT 0
Packit b099d7
Packit b099d7
#define _XM_DS_ACTIVITY_MASK ((CARD16) 0x000C)
Packit b099d7
#define _XM_DS_ACTIVITY_SHIFT 2
Packit b099d7
Packit b099d7
#define _XM_DND_OPERATION_MASK ((CARD16) 0x000F)
Packit b099d7
#define _XM_DND_OPERATION_SHIFT 0
Packit b099d7
Packit b099d7
#define _XM_DND_SITE_STATUS_MASK ((CARD16) 0x00F0)
Packit b099d7
#define _XM_DND_SITE_STATUS_SHIFT 4
Packit b099d7
Packit b099d7
#define _XM_DS_TYPE_MASK ((CARD16) 0x00F0)
Packit b099d7
#define _XM_DS_TYPE_SHIFT 4
Packit b099d7
Packit b099d7
#define _XM_DND_MULTIOPS_MASK ((CARD16) 0x0F00)
Packit b099d7
#define _XM_DND_MULTIOPS_SHIFT 8
Packit b099d7
Packit b099d7
#define _XM_DND_COMPLETION_MASK ((CARD16) 0xF000)
Packit b099d7
#define _XM_DND_COMPLETION_SHIFT 12
Packit b099d7
Packit b099d7
#define _XM_ANIMATION_STYLE_MASK ((CARD16) 0xF000)
Packit b099d7
#define _XM_ANIMATION_STYLE_SHIFT 12
Packit b099d7
Packit b099d7
#define GET_OPERATION(flags) \
Packit b099d7
  ((unsigned char) \
Packit b099d7
   ((int)((flags) & _XM_DND_OPERATION_MASK) >> _XM_DND_OPERATION_SHIFT))
Packit b099d7
Packit b099d7
#define PUT_OPERATION(operation) \
Packit b099d7
  (((CARD16)(operation) << _XM_DND_OPERATION_SHIFT)\
Packit b099d7
   & _XM_DND_OPERATION_MASK)
Packit b099d7
Packit b099d7
#define GET_SITE_STATUS(flags) \
Packit b099d7
  ((unsigned char) \
Packit b099d7
   ((int)((flags) & _XM_DND_SITE_STATUS_MASK) >> _XM_DND_SITE_STATUS_SHIFT))
Packit b099d7
Packit b099d7
#define PUT_SITE_STATUS(site_status) \
Packit b099d7
  (((CARD16)(site_status) << _XM_DND_SITE_STATUS_SHIFT)\
Packit b099d7
   & _XM_DND_SITE_STATUS_MASK)
Packit b099d7
Packit b099d7
#define GET_MULTIOPS(flags) \
Packit b099d7
  ((unsigned char) \
Packit b099d7
   ((int)((flags) & _XM_DND_MULTIOPS_MASK) >> _XM_DND_MULTIOPS_SHIFT))
Packit b099d7
Packit b099d7
#define PUT_MULTIOPS(operation) \
Packit b099d7
  (((CARD16)(operation) << _XM_DND_MULTIOPS_SHIFT)\
Packit b099d7
   & _XM_DND_MULTIOPS_MASK)
Packit b099d7
Packit b099d7
#define GET_COMPLETION(flags) \
Packit b099d7
  ((unsigned char) \
Packit b099d7
   ((int)((flags) & _XM_DND_COMPLETION_MASK) >> _XM_DND_COMPLETION_SHIFT))
Packit b099d7
Packit b099d7
#define PUT_COMPLETION(completion) \
Packit b099d7
  (((CARD16)(completion) << _XM_DND_COMPLETION_SHIFT)\
Packit b099d7
   & _XM_DND_COMPLETION_MASK)
Packit b099d7
Packit b099d7
#define GET_TRAVERSAL_TYPE(flags) \
Packit b099d7
  ((unsigned char) \
Packit b099d7
   ((int)((flags) & _XM_TRAVERSAL_TYPE_MASK) >> _XM_TRAVERSAL_TYPE_SHIFT))
Packit b099d7
Packit b099d7
#define PUT_TRAVERSAL_TYPE(traversal_type) \
Packit b099d7
  (((CARD16)(traversal_type) << _XM_TRAVERSAL_TYPE_SHIFT)\
Packit b099d7
   & _XM_TRAVERSAL_TYPE_MASK)
Packit b099d7
Packit b099d7
#define GET_DS_TYPE(flags) \
Packit b099d7
  ((unsigned char) \
Packit b099d7
   ((int)((flags) & _XM_DS_TYPE_MASK) >> _XM_DS_TYPE_SHIFT))
Packit b099d7
Packit b099d7
#define PUT_DS_TYPE(ds_type) \
Packit b099d7
  (((CARD16)(ds_type) << _XM_DS_TYPE_SHIFT)\
Packit b099d7
   & _XM_DS_TYPE_MASK)
Packit b099d7
Packit b099d7
#define GET_DS_ACTIVITY(flags) \
Packit b099d7
  ((unsigned char) \
Packit b099d7
   ((int)((flags) & _XM_DS_ACTIVITY_MASK) >> _XM_DS_ACTIVITY_SHIFT))
Packit b099d7
Packit b099d7
#define PUT_DS_ACTIVITY(ds_activity) \
Packit b099d7
  (((CARD16)(ds_activity) << _XM_DS_ACTIVITY_SHIFT)\
Packit b099d7
   & _XM_DS_ACTIVITY_MASK)
Packit b099d7
Packit b099d7
#define GET_ANIMATION_STYLE(flags) \
Packit b099d7
  ((unsigned char) \
Packit b099d7
   ((int)((flags) & _XM_ANIMATION_STYLE_MASK) >> _XM_ANIMATION_STYLE_SHIFT))
Packit b099d7
Packit b099d7
#define PUT_ANIMATION_STYLE(animation_style) \
Packit b099d7
  (((CARD16)(animation_style) << _XM_ANIMATION_STYLE_SHIFT)\
Packit b099d7
   & _XM_ANIMATION_STYLE_MASK)
Packit b099d7
Packit b099d7
Packit b099d7
/*
Packit b099d7
 * We consume the high order bit of the messageType in order
Packit b099d7
 * to indicate whether this is an initiator generated event
Packit b099d7
 * or a receiver generated event.
Packit b099d7
 *
Packit b099d7
 * This is all wrapped in macros in case we want to use more bits
Packit b099d7
 * later.
Packit b099d7
 */
Packit b099d7
Packit b099d7
typedef enum {
Packit b099d7
	XmICC_INITIATOR_EVENT,
Packit b099d7
	XmICC_RECEIVER_EVENT
Packit b099d7
} XmICCEventType;
Packit b099d7
Packit b099d7
#define _XM_ICC_EVENT_TYPE_MASK  ((BYTE)0x80)
Packit b099d7
#define _XM_ICC_EVENT_TYPE_SHIFT 7
Packit b099d7
Packit b099d7
#define GET_ICC_EVENT_TYPE(type) \
Packit b099d7
  ((XmICCEventType) \
Packit b099d7
    ((int)((type) & _XM_ICC_EVENT_TYPE_MASK) >> _XM_ICC_EVENT_TYPE_SHIFT))
Packit b099d7
Packit b099d7
#define PUT_ICC_EVENT_TYPE(type) \
Packit b099d7
  (((BYTE)(type) << _XM_ICC_EVENT_TYPE_SHIFT) \
Packit b099d7
    & _XM_ICC_EVENT_TYPE_MASK)
Packit b099d7
Packit b099d7
#define CLEAR_ICC_EVENT_TYPE  ((BYTE)0x7F)
Packit b099d7
Packit b099d7
Packit b099d7
#define _MOTIF_DRAG_PROTOCOL_VERSION	(BYTE)0
Packit b099d7
Packit b099d7
Packit b099d7
externalref unsigned char _XmByteOrderChar;
Packit b099d7
Packit b099d7
Packit b099d7
/********    Private Function Declarations    ********/
Packit b099d7
Packit b099d7
extern unsigned char _XmReasonToMessageType( 
Packit b099d7
                        int reason) ;
Packit b099d7
extern unsigned int _XmMessageTypeToReason( 
Packit b099d7
#if NeedWidePrototypes
Packit b099d7
                        unsigned int messageType) ;
Packit b099d7
#else
Packit b099d7
                        unsigned char messageType) ;
Packit b099d7
#endif /* NeedWidePrototypes */
Packit b099d7
extern void _XmICCCallbackToICCEvent( 
Packit b099d7
                        Display *display,
Packit b099d7
                        Window window,
Packit b099d7
                        XmICCCallback callback,
Packit b099d7
                        XClientMessageEvent *cmev,
Packit b099d7
                        XmICCEventType type) ;
Packit b099d7
extern void _XmSendICCCallback( 
Packit b099d7
                        Display *display,
Packit b099d7
                        Window window,
Packit b099d7
                        XmICCCallback callback,
Packit b099d7
                        XmICCEventType type) ;
Packit b099d7
extern Boolean _XmICCEventToICCCallback( 
Packit b099d7
                        XClientMessageEvent *msgEv,
Packit b099d7
                        XmICCCallback callback,
Packit b099d7
                        XmICCEventType type) ;
Packit b099d7
extern CARD16 _XmReadDragBuffer( 
Packit b099d7
                        xmPropertyBuffer propBuf,
Packit b099d7
#if NeedWidePrototypes
Packit b099d7
                        int which,
Packit b099d7
#else
Packit b099d7
                        BYTE which,
Packit b099d7
#endif /* NeedWidePrototypes */
Packit b099d7
                        BYTE *ptr,
Packit b099d7
                        CARD32 size) ;
Packit b099d7
extern CARD16 _XmWriteDragBuffer( 
Packit b099d7
                        xmPropertyBuffer propBuf,
Packit b099d7
#if NeedWidePrototypes
Packit b099d7
                        int which,
Packit b099d7
#else
Packit b099d7
                        BYTE which,
Packit b099d7
#endif /* NeedWidePrototypes */
Packit b099d7
                        BYTE *ptr,
Packit b099d7
                        CARD32 size) ;
Packit b099d7
extern void _XmWriteInitiatorInfo( 
Packit b099d7
                        Widget dc) ;
Packit b099d7
extern void _XmReadInitiatorInfo( 
Packit b099d7
                        Widget dc) ;
Packit b099d7
extern Boolean _XmGetDragReceiverInfo( 
Packit b099d7
                        Display *display,
Packit b099d7
                        Window window,
Packit b099d7
                        XmDragReceiverInfoStruct *receiverInfoRtn) ;
Packit b099d7
extern Boolean _XmReadDSFromStream( 
Packit b099d7
                        XmDropSiteManagerObject dsm,
Packit b099d7
                        XtPointer iccInfo,
Packit b099d7
                        XmICCDropSiteInfo dropSiteInfoRtn) ;
Packit b099d7
extern void _XmWriteDSToStream( 
Packit b099d7
                        XmDropSiteManagerObject dsm,
Packit b099d7
                        XtPointer stream,
Packit b099d7
                        XmICCDropSiteInfo dropSiteInfo) ;
Packit b099d7
extern void _XmFreeDragReceiverInfo( 
Packit b099d7
                        XtPointer info) ;
Packit b099d7
extern void _XmClearDragReceiverInfo( 
Packit b099d7
                        Widget shell) ;
Packit b099d7
extern void _XmSetDragReceiverInfo( 
Packit b099d7
                        XmDisplay dd,
Packit b099d7
                        Widget shell) ;
Packit b099d7
extern void _XmInitByteOrderChar( void ) ;
Packit b099d7
Packit b099d7
/********    End Private Function Declarations    ********/
Packit b099d7
Packit b099d7
#define _XmInitDragICC(dd)	_XmInitByteOrderChar()
Packit b099d7
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 /* _XmDragICCI_h */