Files
cdesktop/cde/include/Dt/DndP.h
Jon Trulson 369308b737 The great includes migration of 2019 (autotools)
Ok - so one of the steps in building CDE is an early phase called the
includes phase (make includes).  At this point, all of the public
header files are exported to exports/include/Dt, DtI, ...

Then, the software is built using that include dir.

This of course does not work in autotools.  Much of the software does
things like #include <Dt/something.h>, so in order for the build to
succeed, this behavior must be represented/replicated in some way.

It seems the usual way of dealing with this is to place all public
headers (and in some projects, ALL headers) into a toplevel include
directory.

We now do this for all public headers - they have been moved from
wherever they were and placed in the appropriate spot in includes/

This will break the Imake 'make includes' phase unless the Imakefiles
are fixed (remove the HEADERS = stuff, and the incdir defines).  This
has not been done at this point since in reality, once autotools works
properly, there will be no need for the Imake stuff anymore, and I
intend to get rid of it.

This is just a warning for now - Imake builds in this tree will now
fail at the 'includes' stage.

This commit is only the migration.  In upcoming commits, libtt will be
fixed so that the hack being used before to get around this problem is
removed as there will no longer be any need.

And then the autotools work continues...
2019-10-25 17:01:34 -06:00

333 lines
7.9 KiB
C

/*
* CDE - Common Desktop Environment
*
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
*
* These libraries and programs are free software; you can
* redistribute them and/or modify them under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* These libraries and programs are distributed in the hope that
* they will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
/* $XConsortium: DndP.h /main/4 1996/06/21 17:28:31 ageorge $ */
/*********************************************************************
*
* File: DndP.h
*
* Description: Private include file for DND Convenience API.
*
*********************************************************************
*
*+SNOTICE
*
* RESTRICTED CONFIDENTIAL INFORMATION:
*
* The information in this document is subject to special
* restrictions in a confidential disclosure agreement bertween
* HP, IBM, Sun, USL, SCO and Univel. Do not distribute this
* document outside HP, IBM, Sun, USL, SCO, or Univel wihtout
* Sun's specific written approval. This documment and all copies
* and derivative works thereof must be returned or destroyed at
* Sun's request.
*
* Copyright 1993 Sun Microsystems, Inc. All rights reserved.
*
* (c) Copyright 1993, 1994 Hewlett-Packard Company
* (c) Copyright 1993, 1994 International Business Machines Corp.
* (c) Copyright 1993, 1994 Sun Microsystems, Inc.
* (c) Copyright 1993, 1994 Novell, Inc.
*
*+ENOTICE
*/
#ifndef _Dt_DndP_h
#define _Dt_DndP_h
#include <stdarg.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* Drag and Drop selection targets
*/
extern Atom XA_TARGETS;
extern Atom XA_TIMESTAMP;
extern Atom XA_MULTIPLE;
extern Atom XA_DELETE;
extern Atom XA_NULL;
extern Atom XA_TEXT;
extern Atom XA_HOST_NAME;
extern Atom XA_SUN_FILE_HOST_NAME;
extern Atom XA_SUN_ENUM_COUNT;
extern Atom XA_SUN_DATA_LABEL;
extern Atom XA_SUN_SELN_READONLY;
extern Atom XA_SUN_ATM_FILE_NAME;
extern Atom XA_SUN_ATM_METHODS;
#define DtGetAtom(display, atomname) \
XmInternAtom((display),(atomname),False)
/*
* Drag Icon Styles
*/
typedef enum {
DtDND_DRAG_SOURCE_DEFAULT,
DtDND_DRAG_SOURCE_TEXT,
DtDND_DRAG_SOURCE_DATA,
DtDND_DRAG_SOURCE_MULTIPLE
} DtDndDragSource;
/*
* Drag-n-Drop Data Transfer Protocol
*/
typedef struct _DtDndTransfer {
Atom * targets;
Cardinal numTargets;
struct _DtDndMethods * methods;
} DtDndTransfer;
/*
* Drag Initiator Structure
*/
typedef struct _DtDragInfo {
Widget dragInitiator;
Widget dragContext;
DtDndProtocol protocol;
Cardinal numItems;
unsigned char operations;
XtCallbackList dragConvertCallback;
XtCallbackList dragFinishCallback;
XtCallbackList dropOnRootCallback;
XtCallbackList dragDropFinishCallback;
XtCallbackList dropFinishCallback;
XtCallbackList topLevelEnterCallback;
XtCallbackList topLevelLeaveCallback;
XtCallbackList dropStartCallback;
Widget sourceIcon;
Boolean bufferIsText;
DtDndTransfer * transfer;
DtDndContext * dragData;
Boolean inRoot;
Window backdropWindow;
DtDndStatus status;
XtPointer clientData;
} DtDragInfo;
/*
* Drop Receiver Existing Registration Structure
*/
typedef struct _DtDropSiteInfo {
XtCallbackProc dropProc;
unsigned char operations;
Atom * importTargets;
int numImportTargets;
} DtDropSiteInfo;
/*
* Drop Receiver Data Transfer Structure
*/
typedef struct _DtTransferInfo {
Widget dragContext;
DtDndProtocol protocol;
unsigned char operation;
struct _DtDndMethods * methods;
Atom * transferTargets;
Cardinal numTransferTargets;
Cardinal currentTransfer;
Boolean appTransferCalled;
XEvent * event;
Position x, y;
XtPointer clientData;
XtCallbackList dropAnimateCallback;
} DtTransferInfo;
/*
* Drop Receiver Registration Structure
*/
typedef struct _DtDropInfo {
Widget dropReceiver;
DtDndProtocol protocols;
unsigned char operations;
XtCallbackList dropTransferCallback;
XtCallbackList dropAnimateCallback;
Boolean textIsBuffer;
DtDropSiteInfo * dropSiteInfo;
DtDndTransfer * transfers;
Cardinal numTransfers;
DtTransferInfo * transferInfo;
DtDndContext * dropData;
DtDndStatus status;
} DtDropInfo;
/*
* Drag-n-Drop Data Transfer Protocol Function Prototypes
*/
typedef void
(*DtDndGetAvailTargetsProc)(
DtDragInfo * dtDragInfo,
Atom ** returnAvailTargetsList,
Cardinal * returnNumAvailTargets);
typedef void
(*DtDndGetExportTargetsProc)(
DtDragInfo * dtDragInfo,
Atom ** returnExportTargetsList,
Cardinal * returnNumExportTargets);
typedef void
(*DtDndGetImportTargetsProc)(
DtDropInfo * dtDropInfo,
Atom ** returnImportTargetsList,
Cardinal * returnNumImportTargets);
typedef void
(*DtDndConvertInitProc)(
DtDragInfo * dtDragInfo);
typedef Boolean
(*DtDndConvertProc)(
Widget dragContext,
DtDragInfo * dtDragInfo,
Atom * selection,
Atom * target,
Atom * returnType,
XtPointer * returnValue,
unsigned long * returnLength,
int * returnFormat,
XSelectionRequestEvent *selectionRequestEvent);
typedef void
(*DtDndConvertFinishProc)(
DtDragInfo * dtDragInfo);
typedef void
(*DtDndTransferTargetsProc)(
DtDropInfo * dtDropInfo,
Atom * exportTargets,
Cardinal numExportTargets,
Atom ** returnTransferTargetsList,
Cardinal * returnNumTransferTargets);
typedef void
(*DtDndTransferProc)(
Widget dropTransfer,
DtDropInfo * dtDropInfo,
Atom * selection,
Atom * target,
Atom * type,
XtPointer value,
unsigned long * length,
int * format);
typedef void
(*DtDndTransferFinishProc)(
DtDropInfo * dtDropInfo);
/*
* Drag-n-Drop Data Transfer Methods
*/
typedef struct _DtDndMethods {
String name;
DtDndProtocol protocol;
DtDndDragSource sourceType;
DtDndGetAvailTargetsProc getAvailTargets;
DtDndGetExportTargetsProc getExportTargets;
DtDndGetImportTargetsProc getImportTargets;
DtDndConvertInitProc convertInit;
DtDndConvertProc convert;
DtDndConvertFinishProc convertFinish;
DtDndTransferTargetsProc transferTargets;
DtDndTransferProc transfer;
DtDndTransferFinishProc transferFinish;
} DtDndMethods;
/*
* Drag-n-Drop Private Utility Functions
*/
extern DtDndTransfer *
_DtDndCreateExportTransfer(
DtDragInfo * dtDragInfo);
extern DtDndTransfer *
_DtDndCreateImportTransfers(
DtDropInfo * dtDropInfo,
Cardinal * numTransfers);
extern void
_DtDndDestroyTransfers(
DtDndTransfer * transfers,
Cardinal numTransfers);
extern DtDndTransfer *
_DtDndTransferFromTargets(
DtDndTransfer * transfers,
Cardinal numTransfers,
Atom * targets,
Cardinal numTargets);
extern void
_DtDndTransferAdd(
Widget dropTransfer,
DtDropInfo * dtDropInfo,
Atom * transferTargets,
Cardinal numTransferTargets);
extern XtCallbackList
_DtDndCopyCallbackList(
XtCallbackList callbacks);
extern void
_DtDndCallCallbackList(
Widget widget,
XtCallbackList callbacks,
XtPointer calldata);
extern void
_DtDndSelectDragSource(
Widget anyWidget,
DtDndDragSource sourceType,
Widget sourceIcon);
extern void
_DtDndGetIconOffset(
Widget dragContext,
DtDndDragSource sourceType,
int * offsetXReturn,
int * offsetYReturn);
extern String
_DtDndGetHostName(void);
#ifdef DEBUG
extern void _DtDndPrintTargets(Display*,Atom*,Cardinal);
extern void _DtDndPrintTransfers(Display*,DtDndTransfer*,Cardinal);
#endif
#ifdef __cplusplus
}
#endif
#endif /* _Dt_DndP_h */