Blame tests/DragAndDrop/DNDIcon2.c

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
#ifdef REV_INFO
Packit b099d7
#ifndef lint
Packit b099d7
static char rcsid[] = "$XConsortium: DNDIcon2.c /main/11 1996/10/07 14:51:28 drk $"
Packit b099d7
#endif
Packit b099d7
#endif
Packit b099d7
/*
Packit b099d7
*  (c) Copyright 1987, 1988, 1989 HEWLETT-PACKARD COMPANY */
Packit b099d7
/*
Packit b099d7
 *	file: DNDIcon2.c
Packit b099d7
 *
Packit b099d7
 *	This tests the various Icons used during a Drag and Drop transaction.
Packit b099d7
 *	This test needs to be expanded to include changing of icons on the fly,
Packit b099d7
 *	and test that the new icons correctly override the default icons.
Packit b099d7
 *
Packit b099d7
 */
Packit b099d7
Packit b099d7
#include <signal.h>
Packit b099d7
#include <stdio.h>
Packit b099d7
Packit b099d7
#include <testlib.h>
Packit b099d7
Packit b099d7
#include <Xm/Screen.h>
Packit b099d7
#include <Xm/DragDrop.h>
Packit b099d7
Packit b099d7
#include <X11/keysym.h>
Packit b099d7
#include <X11/Xatom.h>
Packit b099d7
#include <X11/cursorfont.h>
Packit b099d7
Packit b099d7
#include "DNDIcons.h"
Packit b099d7
Packit b099d7
Packit b099d7
#define	MAX_DROPSITES	100
Packit b099d7
Packit b099d7
Packit b099d7
static Widget   CreatePushButton();
Packit b099d7
static void	 	Quit();
Packit b099d7
static void	 	StartDrag();
Packit b099d7
Packit b099d7
Packit b099d7
enum {DEFAULT_OP, OP_ICON1, OP_ICON2, OP_ICON3};
Packit b099d7
enum {DEFAULT_STATE, STATE_ICON1, STATE_ICON2, STATE_ICON3};
Packit b099d7
enum {DEFAULT_SRC, SRC_ICON1, SRC_ICON2, SRC_ICON3};
Packit b099d7
Packit b099d7
static char translations[] = 
Packit b099d7
"#override \
Packit b099d7
  Ctrl<Key>t: XtDisplayTranslations()\n\
Packit b099d7
  Ctrl<Key>a: XtDisplayAccelerators()\n\
Packit b099d7
  Ctrl<Key>i: XtDisplayInstalledAccelerators()\n\
Packit b099d7
  Ctrl<Key>q: Quit()";
Packit b099d7
Packit b099d7
static char dragTranslations[] =
Packit b099d7
"#override \
Packit b099d7
  Ctrl<Key>t: XtDisplayTranslations()\n\
Packit b099d7
  Ctrl<Key>a: XtDisplayAccelerators()\n\
Packit b099d7
  Ctrl<Key>i: XtDisplayInstalledAccelerators()\n\
Packit b099d7
  <Btn2Down>: StartDrag()\n\
Packit b099d7
  Ctrl<Key>q: Quit()";
Packit b099d7
Packit b099d7
static XtActionsRec myactions[] = {
Packit b099d7
	{"Quit", (XtActionProc)Quit},
Packit b099d7
	{"StartDrag", (XtActionProc)StartDrag},
Packit b099d7
};
Packit b099d7
Packit b099d7
Packit b099d7
typedef struct _XlationRepRec{
Packit b099d7
	String		str;
Packit b099d7
	XtTranslations	xlation;
Packit b099d7
}XlationRepRec, *XlationRep;
Packit b099d7
Packit b099d7
typedef struct _AppDataRec{
Packit b099d7
	XlationRepRec	xlation1;
Packit b099d7
	XlationRepRec	xlation2;
Packit b099d7
	Cardinal		numShells, numRows, numCols;
Packit b099d7
	Boolean		applyAccelerators;
Packit b099d7
	Boolean		applyOverrides;
Packit b099d7
}AppDataRec, *AppData;
Packit b099d7
Packit b099d7
XtResource	appResources[] = {
Packit b099d7
	{
Packit b099d7
	"xlations1", XtCTranslations, XtRString, 
Packit b099d7
	sizeof(String), XtOffset(AppData, xlation1.str),
Packit b099d7
	XtRString, (XtPointer)translations,
Packit b099d7
	},
Packit b099d7
	{
Packit b099d7
	"xlations1", XtCTranslations, XtRTranslationTable, 
Packit b099d7
	sizeof(XtTranslations), XtOffset(AppData, xlation1.xlation),
Packit b099d7
	XtRString, (XtPointer)translations,
Packit b099d7
	},
Packit b099d7
	{
Packit b099d7
	"xlations2", XtCTranslations, XtRString, 
Packit b099d7
	sizeof(String), XtOffset(AppData, xlation2.str),
Packit b099d7
	XtRString, (XtPointer)dragTranslations,
Packit b099d7
	},
Packit b099d7
	{
Packit b099d7
	"xlations2", XtCTranslations, XtRTranslationTable, 
Packit b099d7
	sizeof(XtTranslations), XtOffset(AppData, xlation2.xlation),
Packit b099d7
	XtRString, (XtPointer)dragTranslations,
Packit b099d7
	},
Packit b099d7
	{
Packit b099d7
	"applyAccelerators", "ApplyAccelerators", XtRBoolean,
Packit b099d7
	sizeof(Boolean), XtOffset(AppData, applyAccelerators),
Packit b099d7
	XtRImmediate, (XtPointer) True,
Packit b099d7
	},
Packit b099d7
	{
Packit b099d7
	"applyOverrides", "ApplyOverrides", XtRBoolean,
Packit b099d7
	sizeof(Boolean), XtOffset(AppData, applyOverrides),
Packit b099d7
	XtRImmediate, (XtPointer) True,
Packit b099d7
	},
Packit b099d7
	{
Packit b099d7
	"numShells", "NumShells", XtRCardinal,
Packit b099d7
	sizeof(Cardinal), XtOffset(AppData, numShells),
Packit b099d7
	XtRImmediate, (XtPointer) 1,
Packit b099d7
	},
Packit b099d7
	{
Packit b099d7
	"numRows", "NumRows", XtRInt,
Packit b099d7
	sizeof(Cardinal), XtOffset(AppData, numRows),
Packit b099d7
	XtRImmediate, (XtPointer) 2,
Packit b099d7
	},
Packit b099d7
	{
Packit b099d7
	"numCols", "NumCols", XtRInt,
Packit b099d7
	sizeof(Cardinal), XtOffset(AppData, numCols),
Packit b099d7
	XtRImmediate, (XtPointer) 3,
Packit b099d7
	},
Packit b099d7
};
Packit b099d7
Packit b099d7
Packit b099d7
Widget	myDC;
Packit b099d7
Atom	COMPOUND_TEXT;
Packit b099d7
Atom	DELETE;
Packit b099d7
Atom	NULL_ATOM;
Packit b099d7
Packit b099d7
Widget	xmDisplay;
Packit b099d7
Widget	xmScreen;
Packit b099d7
Widget	defCopyIcon, defMoveIcon, defLinkIcon;
Packit b099d7
Widget	defVIcon, defInvIcon, defNoneIcon, defSrcIcon;
Packit b099d7
Packit b099d7
Widget	opIcon1, opIcon2, opIcon3;
Packit b099d7
Widget	stateIcon1, stateIcon2, stateIcon3;
Packit b099d7
Widget	srcIcon1, srcIcon2, srcIcon3;
Packit b099d7
Packit b099d7
Widget	opIcon, stateIcon, srcIcon;
Packit b099d7
Packit b099d7
int		opIcon_value, stateIcon_value, srcIcon_value;
Packit b099d7
Packit b099d7
Boolean	use_instruction_box;
Packit b099d7
Packit b099d7
unsigned char	initiatorProtocolStyle;
Packit b099d7
unsigned char	receiverProtocolStyle;
Packit b099d7
Packit b099d7
Boolean	use_small_icons;
Packit b099d7
Boolean	no_background;
Packit b099d7
Packit b099d7
Widget	Form;
Packit b099d7
Packit b099d7
Widget  Whichanim_Pulldown;
Packit b099d7
Widget  Whichanim_Option;
Packit b099d7
Widget  DragUnderHighLight, DragUnderShadowOut, DragUnderShadowIn, 
Packit b099d7
		DragUnderNone, DragUnderPixmap;
Packit b099d7
Packit b099d7
Widget  WhichdropAct_Pulldown;
Packit b099d7
Widget  WhichdropAct_Option;
Packit b099d7
Widget	dropActive, dropInactive;
Packit b099d7
Packit b099d7
Widget  WhichdropOp_Pulldown;
Packit b099d7
Widget  WhichdropOp_Option;
Packit b099d7
Widget	dropMoveCopy, dropMoveOnly, dropCopyOnly, dropLinkOnly,
Packit b099d7
		dropMoveLink, dropCopyLink, dropAll, dropNone;
Packit b099d7
Packit b099d7
Widget  WhichdragOp_Pulldown;
Packit b099d7
Widget  WhichdragOp_Option;
Packit b099d7
Widget	dragMoveCopy, dragMoveOnly, dragCopyOnly, dragLinkOnly,
Packit b099d7
		dragMoveLink, dragCopyLink, dragAll, dragNone;
Packit b099d7
Packit b099d7
Widget  WhichBlend_Pulldown;
Packit b099d7
Widget  WhichBlend_Option;
Packit b099d7
Widget	blendAll, blendStateSource, blendJustSource, blendNone;
Packit b099d7
Packit b099d7
Widget  WhichOpAttach_Pulldown;
Packit b099d7
Widget  WhichOpAttach_Option;
Packit b099d7
Widget	Op_northwest, Op_north, Op_northeast, Op_east, Op_southeast, 
Packit b099d7
		Op_south, Op_southwest, Op_west, Op_center;
Packit b099d7
Packit b099d7
Widget  WhichStateAttach_Pulldown;
Packit b099d7
Widget  WhichStateAttach_Option;
Packit b099d7
Widget	State_northwest, State_north, State_northeast, State_east, 
Packit b099d7
		State_southeast, State_south, State_southwest, State_west, State_center;
Packit b099d7
Packit b099d7
Widget  WhichForeground_Pulldown;
Packit b099d7
Widget  WhichForeground_Option;
Packit b099d7
Widget	redFG, blackFG, yellowFG, greenFG, whiteFG;
Packit b099d7
Packit b099d7
Widget  WhichBackground_Pulldown;
Packit b099d7
Widget  WhichBackground_Option;
Packit b099d7
Widget	redBG, blackBG, yellowBG, greenBG, whiteBG;
Packit b099d7
Packit b099d7
Widget  WhichOpIcon_Pulldown;
Packit b099d7
Widget  WhichOpIcon_Option;
Packit b099d7
Widget	OpIcon1, OpIcon2, OpIcon3, defOpIcon;
Packit b099d7
Packit b099d7
Widget  WhichStateIcon_Pulldown;
Packit b099d7
Widget  WhichStateIcon_Option;
Packit b099d7
Widget	StateIcon1, StateIcon2, StateIcon3, defStateIcon;
Packit b099d7
Packit b099d7
Widget  WhichSrcIcon_Pulldown;
Packit b099d7
Widget  WhichSrcIcon_Option;
Packit b099d7
Widget	SrcIcon1, SrcIcon2, SrcIcon3, defSrcIcon;
Packit b099d7
Packit b099d7
Widget  ApplyChanges;
Packit b099d7
Packit b099d7
unsigned char	animationStyle;
Packit b099d7
unsigned char	dropActivity;
Packit b099d7
unsigned char	dropOperations;
Packit b099d7
unsigned char	dragOperations;
Packit b099d7
unsigned char	blendModel;
Packit b099d7
unsigned char	Op_attachment, State_attachment;
Packit b099d7
Pixel			cursorForeground;
Packit b099d7
Pixel			cursorBackground;
Packit b099d7
Packit b099d7
Pixel	redPixel, blackPixel, yellowPixel, greenPixel, whitePixel;
Packit b099d7
Packit b099d7
Widget	dropSites[MAX_DROPSITES];
Packit b099d7
int		numDropSites;
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
FILE	*outfp;
Packit b099d7
#endif
Packit b099d7
Packit b099d7
Boolean	change_op = False;
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Quit (void )
Packit b099d7
{
Packit b099d7
Packit b099d7
	printf("Begin exiting ... please standby ... \n");
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fflush(outfp);
Packit b099d7
	fclose(outfp);
Packit b099d7
#endif
Packit b099d7
	exit(0);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static Boolean DragConvertProc(w, selection, target, typeRtn, valueRtn, 
Packit b099d7
							  lengthRtn, formatRtn, max_lengthRtn, 
Packit b099d7
							  client_data, request_id)
Packit b099d7
Widget              w;
Packit b099d7
Atom                *selection;
Packit b099d7
Atom                *target;
Packit b099d7
Atom                *typeRtn;
Packit b099d7
XtPointer           *valueRtn;
Packit b099d7
unsigned long       *lengthRtn;
Packit b099d7
int                 *formatRtn;
Packit b099d7
unsigned long       *max_lengthRtn;
Packit b099d7
XtPointer			client_data;
Packit b099d7
XtRequestId			*request_id;
Packit b099d7
{
Packit b099d7
Packit b099d7
	char	*string = "return value";
Packit b099d7
	int		ok;
Packit b099d7
	XTextProperty tmp_prop;
Packit b099d7
Packit b099d7
	if (*target != COMPOUND_TEXT && *target != DELETE)
Packit b099d7
		return(False);
Packit b099d7
Packit b099d7
	if (*target == COMPOUND_TEXT) {
Packit b099d7
Packit b099d7
		ok = 0;
Packit b099d7
		ok = XmbTextListToTextProperty(display, &string, 1, 
Packit b099d7
									   XCompoundTextStyle, &tmp_prop);
Packit b099d7
		if (ok != Success)
Packit b099d7
			return(False);
Packit b099d7
		
Packit b099d7
		*valueRtn = (char *) tmp_prop.value;
Packit b099d7
		*lengthRtn = tmp_prop.nitems;
Packit b099d7
		*typeRtn = COMPOUND_TEXT;
Packit b099d7
		*formatRtn = 8;
Packit b099d7
		return(True);
Packit b099d7
Packit b099d7
	}
Packit b099d7
	if (*target == DELETE) {
Packit b099d7
#ifdef DEBUG
Packit b099d7
		fprintf(outfp, "DELETE target encountered\n");
Packit b099d7
#endif
Packit b099d7
		*typeRtn = NULL_ATOM;
Packit b099d7
		*valueRtn = NULL;
Packit b099d7
		*lengthRtn = 0;
Packit b099d7
		*formatRtn = 8;
Packit b099d7
		return(True);
Packit b099d7
	}
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void DragMotionCallback(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	Widget					dc;
Packit b099d7
	Widget					opIcon, stateIcon;
Packit b099d7
	XmDragMotionCallback	DragMotion;
Packit b099d7
	Arg						args[MAX_ARGS];
Packit b099d7
	Cardinal				n;
Packit b099d7
	static int				count = 0;
Packit b099d7
Packit b099d7
	dc = w;
Packit b099d7
	DragMotion = (XmDragMotionCallback )call_data;
Packit b099d7
Packit b099d7
	if (change_op == True) {
Packit b099d7
Packit b099d7
		if (count == 0) {
Packit b099d7
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNoperationCursorIcon, &opIcon); n++;
Packit b099d7
			XtSetArg(args[n], XmNstateCursorIcon, &stateIcon); n++;
Packit b099d7
			XtGetValues(dc, args, n);
Packit b099d7
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
			XtSetValues(opIcon, args, n);
Packit b099d7
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
			XtSetValues(stateIcon, args, n);
Packit b099d7
Packit b099d7
			count++;
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "Drag Motion! \n");
Packit b099d7
	fprintf(outfp, "operation = %d\n", DragMotion->operation);
Packit b099d7
	fprintf(outfp, "dropSiteStatus = %d\n", DragMotion->dropSiteStatus);
Packit b099d7
	fprintf(outfp, "x = %d\n", DragMotion->x);
Packit b099d7
	fprintf(outfp, "y = %d\n", DragMotion->y);
Packit b099d7
#endif
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void DnDFinishCallback(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XmDragContext				dc;
Packit b099d7
	XmDragDropFinishCallback	DndFinish;
Packit b099d7
	Widget						source_icon, state_icon, op_icon;
Packit b099d7
	Arg							args[MAX_ARGS];
Packit b099d7
	int							n;
Packit b099d7
Packit b099d7
	dc = (XmDragContext)w;
Packit b099d7
	DndFinish = (XmDragDropFinishCallback )call_data;
Packit b099d7
	source_icon = state_icon = op_icon = NULL;
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "DND Finish! \n");
Packit b099d7
#endif
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void DropFinishCallback(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XmDragContext			dc;
Packit b099d7
	XmDropFinishCallback	DropFinish;
Packit b099d7
	Widget					source_icon, state_icon, op_icon;
Packit b099d7
	Arg						args[MAX_ARGS];
Packit b099d7
	int						n;
Packit b099d7
Packit b099d7
	dc = (XmDragContext)w;
Packit b099d7
	DropFinish = (XmDropFinishCallback )call_data;
Packit b099d7
	source_icon = state_icon = op_icon = NULL;
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNsourceCursorIcon, &source_icon); n++;
Packit b099d7
	XtSetArg(args[n], XmNstateCursorIcon, &state_icon); n++;
Packit b099d7
	XtSetArg(args[n], XmNoperationCursorIcon, &op_icon); n++;
Packit b099d7
	XtGetValues((Widget) dc, args, n);
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "Drop Finish! \n");
Packit b099d7
	fprintf(outfp, "operation = %d\n", DropFinish->operation);
Packit b099d7
	fprintf(outfp, "dropSiteStatus = %d\n", DropFinish->dropSiteStatus);
Packit b099d7
	fprintf(outfp, "dropAction = %d\n", DropFinish->dropAction);
Packit b099d7
	fprintf(outfp, "completionStatus = %d\n", DropFinish->completionStatus);
Packit b099d7
#endif
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void DropSiteEnterCallback(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XmDragContext			dc;
Packit b099d7
	XmDropSiteEnterCallback	DropSiteEnter;
Packit b099d7
Packit b099d7
	dc = (XmDragContext)w;
Packit b099d7
	DropSiteEnter = (XmDropSiteEnterCallback )call_data;
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "Drop Site Enter! \n");
Packit b099d7
	fprintf(outfp, "operation = %d\n", DropSiteEnter->operation);
Packit b099d7
	fprintf(outfp, "dropSiteStatus = %d\n", DropSiteEnter->dropSiteStatus);
Packit b099d7
	fprintf(outfp, "x = %d\n", DropSiteEnter->x);
Packit b099d7
	fprintf(outfp, "y = %d\n", DropSiteEnter->y);
Packit b099d7
#endif
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void DropSiteLeaveCallback(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XmDragContext			dc;
Packit b099d7
	XmDropSiteLeaveCallback	DropSiteLeave;
Packit b099d7
	Arg						args[MAX_ARGS];
Packit b099d7
	int						n;
Packit b099d7
Packit b099d7
	dc = (XmDragContext)w;
Packit b099d7
	DropSiteLeave = (XmDropSiteLeaveCallback )call_data;
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "Drop Site Leave! \n");
Packit b099d7
#endif
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void DropStartCallback(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XmDragContext		dc;
Packit b099d7
	XmDropStartCallback	DropStart;
Packit b099d7
Packit b099d7
	dc = (XmDragContext)w;
Packit b099d7
	DropStart = (XmDropStartCallback )call_data;
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "Drop Start! \n");
Packit b099d7
	fprintf(outfp, "operation = %d\n", DropStart->operation);
Packit b099d7
	fprintf(outfp, "dropSiteStatus = %d\n", DropStart->dropSiteStatus);
Packit b099d7
	fprintf(outfp, "dropAction = %d\n", DropStart->dropAction);
Packit b099d7
	fprintf(outfp, "x = %d\n", DropStart->x);
Packit b099d7
	fprintf(outfp, "y = %d\n", DropStart->y);
Packit b099d7
#endif
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void TopLEnterCallback(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XmDragContext			dc;
Packit b099d7
	XmTopLevelEnterCallback	TopLEnter;
Packit b099d7
Packit b099d7
	dc = (XmDragContext)w;
Packit b099d7
	TopLEnter = (XmTopLevelEnterCallback )call_data;
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "TopLevel Enter! \n");
Packit b099d7
	fprintf(outfp, "window = %ld\n", TopLEnter->window);
Packit b099d7
	fprintf(outfp, "x = %d\n", TopLEnter->x);
Packit b099d7
	fprintf(outfp, "y = %d\n", TopLEnter->y);
Packit b099d7
	fprintf(outfp, "dragProtocolStyle = %d\n", TopLEnter->dragProtocolStyle);
Packit b099d7
#endif
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void TopLLeaveCallback(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XmDragContext			dc;
Packit b099d7
	XmTopLevelLeaveCallback	TopLLeave;
Packit b099d7
Packit b099d7
	dc = (XmDragContext)w;
Packit b099d7
	TopLLeave = (XmTopLevelLeaveCallback )call_data;
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "TopLevel Leave! \n");
Packit b099d7
	fprintf(outfp, "window = %ld\n", TopLLeave->window);
Packit b099d7
#endif
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void CreateDefaultDragIcons(w)
Packit b099d7
Widget	w;
Packit b099d7
{
Packit b099d7
Packit b099d7
	Pixmap	defCopyPix, defMovePix, defLinkPix;
Packit b099d7
	Pixmap	defVPix, defInvPix, defNonePix, defSrcPix;
Packit b099d7
	int		n;
Packit b099d7
	Arg		args[MAX_ARGS];
Packit b099d7
	static int	count = 0;
Packit b099d7
Packit b099d7
Packit b099d7
	if (count == 0) {
Packit b099d7
Packit b099d7
		if (use_small_icons == False) {
Packit b099d7
Packit b099d7
			defCopyPix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
											   defCopy_bits,
Packit b099d7
									   		   defCopy_width, defCopy_height);
Packit b099d7
			defMovePix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
											   defMove_bits, defMove_width, 
Packit b099d7
											   defMove_height);
Packit b099d7
			defLinkPix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
											   defLink_bits, defLink_width, 
Packit b099d7
											   defLink_height);
Packit b099d7
			defVPix = XCreateBitmapFromData(display, XtWindow(w), defV_bits,
Packit b099d7
											defV_width, defV_height);
Packit b099d7
			defInvPix = XCreateBitmapFromData(display, XtWindow(w), defInv_bits,
Packit b099d7
									  		  defInv_width, defInv_height);
Packit b099d7
			defNonePix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
											   defNone_bits,
Packit b099d7
									   		   defNone_width, defNone_height);
Packit b099d7
			defSrcPix = XCreateBitmapFromData(display, XtWindow(w), defSrc_bits,
Packit b099d7
									  		  defSrc_width, defSrc_height);
Packit b099d7
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, defCopy_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, defCopy_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, defCopy_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, defCopy_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defCopyPix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
			defCopyIcon = XmCreateDragIcon(w, "defCopyIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, defMove_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, defMove_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, defMove_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, defMove_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defMovePix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
			defMoveIcon = XmCreateDragIcon(w, "defMoveIcon", args, n);
Packit b099d7
		
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, defLink_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, defLink_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, defLink_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, defLink_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defLinkPix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
			defLinkIcon = XmCreateDragIcon(w, "defLinkIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, defV_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, defV_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, defV_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, defV_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defVPix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
			defVIcon = XmCreateDragIcon(w, "defVIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, defInv_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, defInv_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, defInv_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, defInv_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defInvPix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
			defInvIcon = XmCreateDragIcon(w, "defInvIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, defNone_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, defNone_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, defNone_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, defNone_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defNonePix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
			defNoneIcon = XmCreateDragIcon(w, "defNoneIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, defSrc_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, defSrc_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, defSrc_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, defSrc_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defSrcPix); n++;
Packit b099d7
			defSrcIcon = XmCreateDragIcon(w, "defSrcIcon", args, n);
Packit b099d7
	
Packit b099d7
		}
Packit b099d7
		else {
Packit b099d7
			defCopyPix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
											   copy_bits,
Packit b099d7
									   		   copy_width, copy_height);
Packit b099d7
			defMovePix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
											   move_bits, move_width, 
Packit b099d7
											   move_height);
Packit b099d7
			defLinkPix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
											   link_bits, link_width, 
Packit b099d7
											   link_height);
Packit b099d7
			defVPix = XCreateBitmapFromData(display, XtWindow(w), valid_bits,
Packit b099d7
											valid_width, valid_height);
Packit b099d7
			defInvPix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
											  invalid_bits, invalid_width, 
Packit b099d7
											  invalid_height);
Packit b099d7
			defNonePix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
											   none_bits, none_width, 
Packit b099d7
											   none_height);
Packit b099d7
			defSrcPix = XCreateBitmapFromData(display, XtWindow(w), src_bits,
Packit b099d7
									  		  src_width, src_height);
Packit b099d7
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, copy_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, copy_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, copy_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, copy_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defCopyPix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
			defCopyIcon = XmCreateDragIcon(w, "defCopyIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, move_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, move_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, move_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, move_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defMovePix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
			defMoveIcon = XmCreateDragIcon(w, "defMoveIcon", args, n);
Packit b099d7
		
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, link_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, link_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, link_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, link_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defLinkPix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
			defLinkIcon = XmCreateDragIcon(w, "defLinkIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, valid_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, valid_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, valid_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, valid_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defVPix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
			defVIcon = XmCreateDragIcon(w, "defVIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, invalid_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, invalid_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, invalid_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, invalid_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defInvPix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
			defInvIcon = XmCreateDragIcon(w, "defInvIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, none_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, none_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, none_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, none_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defNonePix); n++;
Packit b099d7
			XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
			defNoneIcon = XmCreateDragIcon(w, "defNoneIcon", args, n);
Packit b099d7
	
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNwidth, src_width); n++;
Packit b099d7
			XtSetArg(args[n], XmNheight, src_height); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotX, src_x_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNhotY, src_y_hot); n++;
Packit b099d7
			XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
			XtSetArg(args[n], XmNpixmap, defSrcPix); n++;
Packit b099d7
			defSrcIcon = XmCreateDragIcon(w, "defSrcIcon", args, n);
Packit b099d7
	
Packit b099d7
		}
Packit b099d7
		count++;
Packit b099d7
		
Packit b099d7
	}
Packit b099d7
	else {
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
		XtSetValues(defCopyIcon, args, n);
Packit b099d7
		XtSetValues(defMoveIcon, args, n);
Packit b099d7
		XtSetValues(defLinkIcon, args, n);
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
		XtSetValues(defVIcon, args, n);
Packit b099d7
		XtSetValues(defInvIcon, args, n);
Packit b099d7
		XtSetValues(defNoneIcon, args, n);
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNdefaultCopyCursorIcon, defCopyIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultMoveCursorIcon, defMoveIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultLinkCursorIcon, defLinkIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultValidCursorIcon, defVIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultInvalidCursorIcon, defInvIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultNoneCursorIcon, defNoneIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultSourceCursorIcon, defSrcIcon); n++;
Packit b099d7
	XtSetValues(xmScreen, args, n);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void CreateOtherDragIcons(w)
Packit b099d7
Widget	w;
Packit b099d7
{
Packit b099d7
Packit b099d7
	Pixmap	opPix, statePix, srcPix;
Packit b099d7
	int		n;
Packit b099d7
	Arg		args[MAX_ARGS];
Packit b099d7
	static int	count = 0;
Packit b099d7
Packit b099d7
Packit b099d7
	if (count == 0) {
Packit b099d7
Packit b099d7
		opPix = XCreateBitmapFromData(display, XtWindow(w), opIcon1_bits,
Packit b099d7
									   opIcon1_width, opIcon1_height);
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNwidth, opIcon1_width); n++;
Packit b099d7
		XtSetArg(args[n], XmNheight, opIcon1_height); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotX, opIcon1_x_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotY, opIcon1_y_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
		XtSetArg(args[n], XmNpixmap, opPix); n++;
Packit b099d7
		opIcon1 = XmCreateDragIcon(w, "opIcon1", args, n);
Packit b099d7
Packit b099d7
		opPix = XCreateBitmapFromData(display, XtWindow(w), opIcon2_bits,
Packit b099d7
										   opIcon2_width, opIcon2_height);
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNwidth, opIcon2_width); n++;
Packit b099d7
		XtSetArg(args[n], XmNheight, opIcon2_height); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotX, opIcon2_x_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotY, opIcon2_y_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
		XtSetArg(args[n], XmNpixmap, opPix); n++;
Packit b099d7
		opIcon2 = XmCreateDragIcon(w, "opIcon2", args, n);
Packit b099d7
	
Packit b099d7
		opPix = XCreateBitmapFromData(display, XtWindow(w), opIcon3_bits,
Packit b099d7
										   opIcon3_width, opIcon3_height);
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNwidth, opIcon3_width); n++;
Packit b099d7
		XtSetArg(args[n], XmNheight, opIcon3_height); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotX, opIcon3_x_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotY, opIcon3_y_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
		XtSetArg(args[n], XmNpixmap, opPix); n++;
Packit b099d7
		opIcon3 = XmCreateDragIcon(w, "opIcon3", args, n);
Packit b099d7
Packit b099d7
		statePix = XCreateBitmapFromData(display, XtWindow(w), stateIcon1_bits,
Packit b099d7
									   stateIcon1_width, stateIcon1_height);
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNwidth, stateIcon1_width); n++;
Packit b099d7
		XtSetArg(args[n], XmNheight, stateIcon1_height); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotX, stateIcon1_x_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotY, stateIcon1_y_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
		XtSetArg(args[n], XmNpixmap, statePix); n++;
Packit b099d7
		stateIcon1 = XmCreateDragIcon(w, "stateIcon1", args, n);
Packit b099d7
Packit b099d7
		statePix = XCreateBitmapFromData(display, XtWindow(w), stateIcon2_bits,
Packit b099d7
										   stateIcon2_width, stateIcon2_height);
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNwidth, stateIcon2_width); n++;
Packit b099d7
		XtSetArg(args[n], XmNheight, stateIcon2_height); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotX, stateIcon2_x_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotY, stateIcon2_y_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
		XtSetArg(args[n], XmNpixmap, statePix); n++;
Packit b099d7
		stateIcon2 = XmCreateDragIcon(w, "stateIcon2", args, n);
Packit b099d7
	
Packit b099d7
		statePix = XCreateBitmapFromData(display, XtWindow(w), stateIcon3_bits,
Packit b099d7
										   stateIcon3_width, stateIcon3_height);
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNwidth, stateIcon3_width); n++;
Packit b099d7
		XtSetArg(args[n], XmNheight, stateIcon3_height); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotX, stateIcon3_x_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotY, stateIcon3_y_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
		XtSetArg(args[n], XmNpixmap, statePix); n++;
Packit b099d7
		stateIcon3 = XmCreateDragIcon(w, "stateIcon3", args, n);
Packit b099d7
Packit b099d7
		srcPix = XCreateBitmapFromData(display, XtWindow(w), 
Packit b099d7
									   srcIcon1_bits,
Packit b099d7
									   srcIcon1_width, 
Packit b099d7
									   srcIcon1_height);
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNwidth, srcIcon1_width); n++;
Packit b099d7
		XtSetArg(args[n], XmNheight, srcIcon1_height); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotX, srcIcon1_x_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotY, srcIcon1_y_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
		XtSetArg(args[n], XmNpixmap, srcPix); n++;
Packit b099d7
		srcIcon1 = XmCreateDragIcon(w, "srcIcon1", args, n);
Packit b099d7
Packit b099d7
		srcPix = XCreateBitmapFromData(display, XtWindow(w), srcIcon2_bits,
Packit b099d7
										   srcIcon2_width, srcIcon2_height);
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNwidth, srcIcon2_width); n++;
Packit b099d7
		XtSetArg(args[n], XmNheight, srcIcon2_height); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotX, srcIcon2_x_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotY, srcIcon2_y_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
		XtSetArg(args[n], XmNpixmap, srcPix); n++;
Packit b099d7
		srcIcon2 = XmCreateDragIcon(w, "srcIcon2", args, n);
Packit b099d7
	
Packit b099d7
		srcPix = XCreateBitmapFromData(display, XtWindow(w), srcIcon3_bits,
Packit b099d7
										   srcIcon3_width, srcIcon3_height);
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNwidth, srcIcon3_width); n++;
Packit b099d7
		XtSetArg(args[n], XmNheight, srcIcon3_height); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotX, srcIcon3_x_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNhotY, srcIcon3_y_hot); n++;
Packit b099d7
		XtSetArg(args[n], XmNdepth, 1); n++;
Packit b099d7
		XtSetArg(args[n], XmNpixmap, srcPix); n++;
Packit b099d7
		srcIcon3 = XmCreateDragIcon(w, "srcIcon3", args, n);
Packit b099d7
	
Packit b099d7
		count++;
Packit b099d7
Packit b099d7
	}
Packit b099d7
	else {
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
		XtSetValues(opIcon1, args, n);
Packit b099d7
		XtSetValues(opIcon2, args, n);
Packit b099d7
		XtSetValues(opIcon3, args, n);
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
		XtSetValues(stateIcon1, args, n);
Packit b099d7
		XtSetValues(stateIcon2, args, n);
Packit b099d7
		XtSetValues(stateIcon3, args, n);
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void SetDefaultDragIcons(w)
Packit b099d7
Widget	w;
Packit b099d7
{
Packit b099d7
Packit b099d7
	int		n;
Packit b099d7
	Arg		args[MAX_ARGS];
Packit b099d7
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNdefaultCopyCursorIcon, defCopyIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultMoveCursorIcon, defMoveIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultLinkCursorIcon, defLinkIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultValidCursorIcon, defVIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultInvalidCursorIcon, defInvIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultNoneCursorIcon, defNoneIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNdefaultSourceCursorIcon, defSrcIcon); n++;
Packit b099d7
	XtSetValues(xmScreen, args, n);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void StartDrag(w, event)
Packit b099d7
Widget	w;
Packit b099d7
XEvent	*event;
Packit b099d7
{
Packit b099d7
Packit b099d7
	static Boolean	first_drag = True;
Packit b099d7
	Arg			args[MAX_ARGS];
Packit b099d7
	Cardinal	n;
Packit b099d7
	Atom		exportList[1];
Packit b099d7
	static XtCallbackRec DragMotionCB[2] = 
Packit b099d7
	{
Packit b099d7
		{DragMotionCallback,NULL},
Packit b099d7
		{NULL, NULL}
Packit b099d7
	};
Packit b099d7
Packit b099d7
	static XtCallbackRec DnDFinishCB[2] = 
Packit b099d7
	{
Packit b099d7
		{DnDFinishCallback,NULL},
Packit b099d7
		{NULL, NULL}
Packit b099d7
	};
Packit b099d7
Packit b099d7
	static XtCallbackRec DropFinishCB[2] = 
Packit b099d7
	{
Packit b099d7
		{DropFinishCallback,NULL},
Packit b099d7
		{NULL, NULL}
Packit b099d7
	};
Packit b099d7
Packit b099d7
	static XtCallbackRec DropSiteEnterCB[2] = 
Packit b099d7
	{
Packit b099d7
		{DropSiteEnterCallback,NULL},
Packit b099d7
		{NULL, NULL}
Packit b099d7
	};
Packit b099d7
Packit b099d7
	static XtCallbackRec DropSiteLeaveCB[2] = 
Packit b099d7
	{
Packit b099d7
		{DropSiteLeaveCallback,NULL},
Packit b099d7
		{NULL, NULL}
Packit b099d7
	};
Packit b099d7
Packit b099d7
	static XtCallbackRec DropStartCB[2] = 
Packit b099d7
	{
Packit b099d7
		{DropStartCallback,NULL},
Packit b099d7
		{NULL, NULL}
Packit b099d7
	};
Packit b099d7
Packit b099d7
	static XtCallbackRec TopLEnterCB[2] = 
Packit b099d7
	{
Packit b099d7
		{TopLEnterCallback,NULL},
Packit b099d7
		{NULL, NULL}
Packit b099d7
	};
Packit b099d7
Packit b099d7
	static XtCallbackRec TopLLeaveCB[2] = 
Packit b099d7
	{
Packit b099d7
		{TopLLeaveCallback,NULL},
Packit b099d7
		{NULL, NULL}
Packit b099d7
	};
Packit b099d7
Packit b099d7
Packit b099d7
	CreateDefaultDragIcons(w);
Packit b099d7
Packit b099d7
	CreateOtherDragIcons(w);
Packit b099d7
Packit b099d7
	/*
Packit b099d7
	 * If it is the first drag initiated, get the current opIcon and
Packit b099d7
	 * stateIcon values.  This is to avoid calling SetValues on a 
Packit b099d7
	 * NULL opIcon or stateIcon.
Packit b099d7
	 */
Packit b099d7
	if (first_drag == True) {
Packit b099d7
Packit b099d7
		if (opIcon_value != DEFAULT_OP) {
Packit b099d7
Packit b099d7
			switch(opIcon_value) {
Packit b099d7
Packit b099d7
				case OP_ICON1:
Packit b099d7
Packit b099d7
					opIcon = opIcon1;
Packit b099d7
					break;
Packit b099d7
Packit b099d7
				case OP_ICON2:
Packit b099d7
Packit b099d7
					opIcon = opIcon2;
Packit b099d7
					break;
Packit b099d7
Packit b099d7
				case OP_ICON3:
Packit b099d7
Packit b099d7
					opIcon = opIcon3;
Packit b099d7
					break;
Packit b099d7
Packit b099d7
			}
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
		if (stateIcon_value != DEFAULT_STATE) {
Packit b099d7
Packit b099d7
			switch(stateIcon_value) {
Packit b099d7
Packit b099d7
				case STATE_ICON1:
Packit b099d7
Packit b099d7
					stateIcon = stateIcon1;
Packit b099d7
					break;
Packit b099d7
Packit b099d7
				case STATE_ICON2:
Packit b099d7
Packit b099d7
					stateIcon = stateIcon2;
Packit b099d7
					break;
Packit b099d7
Packit b099d7
				case STATE_ICON3:
Packit b099d7
Packit b099d7
					stateIcon = stateIcon3;
Packit b099d7
					break;
Packit b099d7
Packit b099d7
			}
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
		first_drag = False;
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
	if (opIcon_value != DEFAULT_OP) {
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNattachment, Op_attachment); n++;
Packit b099d7
		XtSetValues(opIcon, args, n);
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
	if (stateIcon_value != DEFAULT_STATE) {
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNattachment, State_attachment); n++;
Packit b099d7
		XtSetValues(stateIcon, args, n);
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
	exportList[0] = COMPOUND_TEXT;
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNconvertProc, DragConvertProc); n++;
Packit b099d7
	XtSetArg(args[n], XmNdragDropFinishCallback, DnDFinishCB); n++;
Packit b099d7
	XtSetArg(args[n], XmNdragMotionCallback, DragMotionCB); n++;
Packit b099d7
	XtSetArg(args[n], XmNdropFinishCallback, DropFinishCB); n++;
Packit b099d7
	XtSetArg(args[n], XmNdropSiteEnterCallback, DropSiteEnterCB); n++;
Packit b099d7
	XtSetArg(args[n], XmNdropSiteLeaveCallback, DropSiteLeaveCB); n++;
Packit b099d7
	XtSetArg(args[n], XmNdropStartCallback, DropStartCB); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopLevelEnterCallback, TopLEnterCB); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopLevelLeaveCallback, TopLLeaveCB); n++;
Packit b099d7
Packit b099d7
	XtSetArg(args[n], XmNexportTargets, exportList); n++;
Packit b099d7
	XtSetArg(args[n], XmNnumExportTargets, 1); n++;
Packit b099d7
Packit b099d7
	XtSetArg(args[n], XmNcursorForeground, cursorForeground); n++;
Packit b099d7
	if (no_background == False)
Packit b099d7
		XtSetArg(args[n], XmNcursorBackground, cursorBackground); n++;
Packit b099d7
	XtSetArg(args[n], XmNdragOperations, dragOperations); n++;
Packit b099d7
	XtSetArg(args[n], XmNblendModel, blendModel); n++;
Packit b099d7
Packit b099d7
	if (opIcon_value != DEFAULT_OP) {
Packit b099d7
		XtSetArg(args[n], XmNoperationCursorIcon, opIcon); n++;
Packit b099d7
	}
Packit b099d7
	if (stateIcon_value != DEFAULT_STATE) {
Packit b099d7
		XtSetArg(args[n], XmNstateCursorIcon, stateIcon); n++;
Packit b099d7
	}
Packit b099d7
	if (srcIcon_value != DEFAULT_SRC) {
Packit b099d7
		XtSetArg(args[n], XmNsourceCursorIcon, srcIcon); n++;
Packit b099d7
	}
Packit b099d7
Packit b099d7
	myDC = XmDragStart(w, event, args, n);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void HandleDrag(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XmDragProcCallback	DragProc;
Packit b099d7
Packit b099d7
Packit b099d7
	DragProc = (XmDragProcCallback)call_data;
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "DragProc !\n");
Packit b099d7
	fprintf(outfp, "x = %d\n", DragProc->x);
Packit b099d7
	fprintf(outfp, "y = %d\n", DragProc->y);
Packit b099d7
	fprintf(outfp, "dropSiteStatus = %d\n", DragProc->dropSiteStatus);
Packit b099d7
	fprintf(outfp, "operations = %d\n", DragProc->operations);
Packit b099d7
#endif
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void DropTransferCallback(w, closure, seltype, type, value, 
Packit b099d7
								 length, format)
Packit b099d7
Widget 			w;
Packit b099d7
XtPointer 		closure ;
Packit b099d7
Atom 			*seltype ;
Packit b099d7
Atom 			*type ;
Packit b099d7
XtPointer 		value ;
Packit b099d7
unsigned long	*length ;
Packit b099d7
int 			*format ;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XTextProperty	tmp_prop;
Packit b099d7
	int 			num_vals;
Packit b099d7
	int				ok;
Packit b099d7
	char 			*total_tmp_value = NULL;
Packit b099d7
	char 			**tmp_value;
Packit b099d7
	int 			malloc_size = 0;
Packit b099d7
	char 			*actual_value;
Packit b099d7
	int				actual_length = 0;
Packit b099d7
	Cardinal		i;
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
	if (*length)
Packit b099d7
		if (*type == COMPOUND_TEXT) {
Packit b099d7
Packit b099d7
       		tmp_prop.value = (unsigned char *) value;
Packit b099d7
	   		tmp_prop.encoding = *type;
Packit b099d7
			tmp_prop.format = 8;
Packit b099d7
			tmp_prop.nitems = *length;
Packit b099d7
			num_vals = 0;
Packit b099d7
Packit b099d7
			ok = 0;
Packit b099d7
			ok = XmbTextPropertyToTextList(display, &tmp_prop, &tmp_value,
Packit b099d7
										   &num_vals);
Packit b099d7
Packit b099d7
			if (num_vals && (ok == Success || ok > 0)) {
Packit b099d7
Packit b099d7
				for (i = 0; i < num_vals; i++)
Packit b099d7
					malloc_size += strlen(*tmp_value + i);
Packit b099d7
				total_tmp_value = XtMalloc ((unsigned) malloc_size + 1);
Packit b099d7
				total_tmp_value[0] = '\0';
Packit b099d7
				for (i = 0; i < num_vals ; i++)
Packit b099d7
					strcat(total_tmp_value, *tmp_value + i);
Packit b099d7
				actual_value = total_tmp_value;
Packit b099d7
				actual_length = strlen(total_tmp_value);
Packit b099d7
#ifdef DEBUG
Packit b099d7
				fprintf(stderr, "the transfer value is : %s\n", actual_value);
Packit b099d7
				fprintf(stderr, "the length of transfer is : %d\n", 
Packit b099d7
						actual_length);
Packit b099d7
#endif
Packit b099d7
				XFreeStringList(tmp_value);
Packit b099d7
Packit b099d7
			}
Packit b099d7
			else {
Packit b099d7
				if (value) {
Packit b099d7
					XtFree((char *)value);
Packit b099d7
					value = NULL;
Packit b099d7
				}
Packit b099d7
				actual_length = -1;
Packit b099d7
			}
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	if (actual_length != -1) {
Packit b099d7
		if (*type == COMPOUND_TEXT)
Packit b099d7
			fprintf(outfp, "the transfer value is : %s\n", actual_value);
Packit b099d7
		else if (*type == XA_PIXMAP)
Packit b099d7
			fprintf(outfp, "the transfer value is of type pixmap\n");
Packit b099d7
		else if (*type == XA_BITMAP)
Packit b099d7
			fprintf(outfp, "the transfer value is of type bitmap\n");
Packit b099d7
		else if (*type == NULL_ATOM)
Packit b099d7
			fprintf(outfp, "the transfer value is of type NULL\n");
Packit b099d7
	}
Packit b099d7
#endif
Packit b099d7
Packit b099d7
	/* You no longer need it, so free it */
Packit b099d7
	if (total_tmp_value != NULL)
Packit b099d7
		XtFree(total_tmp_value);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void HandleDrop(w, client_data, call_data)
Packit b099d7
Widget		w;
Packit b099d7
XtPointer	client_data, call_data;
Packit b099d7
{
Packit b099d7
Packit b099d7
	XmDropProcCallback		DropProc;
Packit b099d7
	Widget 					dc;
Packit b099d7
	XmDropTransferEntryRec	transferEntries[2];
Packit b099d7
	XmDropTransferEntry		transferList;
Packit b099d7
	Cardinal 				numTransfers = 0;
Packit b099d7
	Cardinal 				numExportTargets;
Packit b099d7
	Atom 					*exportTargets;
Packit b099d7
	Cardinal 				numImportTargets;
Packit b099d7
	Atom 					*importTargets;
Packit b099d7
	Arg 					args[MAX_ARGS];
Packit b099d7
	int						n;
Packit b099d7
	char					*string = "TestString";
Packit b099d7
Packit b099d7
Packit b099d7
	DropProc = (XmDropProcCallback)call_data;
Packit b099d7
	dc = DropProc->dragContext;
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNexportTargets, &exportTargets); n++;
Packit b099d7
	XtSetArg(args[n], XmNnumExportTargets, &numExportTargets); n++;
Packit b099d7
	XtGetValues(dc, args, n);
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNimportTargets, &importTargets); n++;
Packit b099d7
	XtSetArg(args[n], XmNnumImportTargets, &numImportTargets); n++;
Packit b099d7
	XmDropSiteRetrieve(w, args, n);
Packit b099d7
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fprintf(outfp, "DropProc !\n");
Packit b099d7
	fprintf(outfp, "x = %d\n", DropProc->x);
Packit b099d7
	fprintf(outfp, "y = %d\n", DropProc->y);
Packit b099d7
	fprintf(outfp, "dropSiteStatus = %d\n", DropProc->dropSiteStatus);
Packit b099d7
	fprintf(outfp, "operation = %d\n", DropProc->operation);
Packit b099d7
	fprintf(outfp, "dropAction = %d\n", DropProc->dropAction);
Packit b099d7
#endif
Packit b099d7
Packit b099d7
	transferEntries[0].target = COMPOUND_TEXT;
Packit b099d7
	transferEntries[0].client_data = string;
Packit b099d7
	n = 0;
Packit b099d7
	if (XmTargetsAreCompatible(display, exportTargets, numExportTargets,
Packit b099d7
						   importTargets, numImportTargets) == False) {
Packit b099d7
		XtSetArg(args[n], XmNtransferStatus, XmTRANSFER_FAILURE); n++;
Packit b099d7
		XtSetArg(args[n], XmNnumDropTransfers, 0); n++;
Packit b099d7
	}
Packit b099d7
	else {
Packit b099d7
Packit b099d7
		if (DropProc->operation & XmDROP_MOVE || 
Packit b099d7
			DropProc->operation & XmDROP_COPY) {
Packit b099d7
		
Packit b099d7
			if (DropProc->operation & XmDROP_MOVE) {
Packit b099d7
				transferEntries[1].target = DELETE;
Packit b099d7
				transferEntries[1].client_data = NULL;
Packit b099d7
				numTransfers = 2;
Packit b099d7
			}
Packit b099d7
			else
Packit b099d7
				numTransfers = 1;
Packit b099d7
			transferList = transferEntries;
Packit b099d7
			XtSetArg(args[n], XmNdropTransfers, transferList); n++;
Packit b099d7
			XtSetArg(args[n], XmNnumDropTransfers, numTransfers); n++;
Packit b099d7
Packit b099d7
		} 
Packit b099d7
		else {
Packit b099d7
			if (DropProc->operation & XmDROP_LINK)
Packit b099d7
				fprintf(stderr, "Link Operation currently not supported\n");
Packit b099d7
			XtSetArg(args[n], XmNtransferStatus, XmTRANSFER_FAILURE); n++;
Packit b099d7
			XtSetArg(args[n], XmNnumDropTransfers, 0); n++;
Packit b099d7
		}
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
	XtSetArg(args[n], XmNtransferProc, DropTransferCallback); n++;
Packit b099d7
	XmDropTransferStart(dc, args, n);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static int ProtoError(dpy, ev)
Packit b099d7
Display		*dpy;
Packit b099d7
XErrorEvent	*ev;
Packit b099d7
{
Packit b099d7
Packit b099d7
	fprintf(stderr, "Proto Error\n");
Packit b099d7
#ifdef DEBUG
Packit b099d7
	fflush(outfp);
Packit b099d7
	fclose(outfp);
Packit b099d7
#endif
Packit b099d7
	exit(0);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void DragUnderHighLightCB(Widget w, XtPointer client_data, 
Packit b099d7
								 XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	animationStyle = XmDRAG_UNDER_HIGHLIGHT;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void DragUnderShadowOutCB(Widget w, XtPointer client_data, 
Packit b099d7
									 XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	animationStyle = XmDRAG_UNDER_SHADOW_OUT;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void DragUnderShadowInCB(Widget w, XtPointer client_data, 
Packit b099d7
									 XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	animationStyle = XmDRAG_UNDER_SHADOW_IN;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void DragUnderPixmapCB(Widget w, XtPointer client_data, 
Packit b099d7
									 XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	animationStyle = XmDRAG_UNDER_PIXMAP;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void DragUnderNoneCB(Widget w, XtPointer client_data, 
Packit b099d7
									 XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	animationStyle = XmDRAG_UNDER_SHADOW_OUT;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropActiveCB(Widget w, XtPointer client_data, 
Packit b099d7
							 XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropActivity = XmDROP_SITE_ACTIVE;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropInactiveCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropActivity = XmDROP_SITE_INACTIVE;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropMoveCopyCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropOperations = XmDROP_MOVE | XmDROP_COPY;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropMoveOnlyCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropOperations = XmDROP_MOVE;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropCopyOnlyCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropOperations = XmDROP_COPY;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropLinkOnlyCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropOperations = XmDROP_LINK;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropMoveLinkCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropOperations = XmDROP_MOVE | XmDROP_LINK;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropCopyLinkCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropOperations = XmDROP_COPY | XmDROP_LINK;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropAllCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropOperations = XmDROP_MOVE | XmDROP_COPY | XmDROP_LINK;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dropNoneCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dropOperations = XmDROP_NOOP;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dragMoveCopyCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dragOperations = XmDROP_MOVE | XmDROP_COPY;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dragMoveOnlyCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dragOperations = XmDROP_MOVE;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dragCopyOnlyCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dragOperations = XmDROP_COPY;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dragLinkOnlyCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dragOperations = XmDROP_LINK;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dragMoveLinkCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dragOperations = XmDROP_MOVE | XmDROP_LINK;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dragCopyLinkCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dragOperations = XmDROP_COPY | XmDROP_LINK;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dragAllCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dragOperations = XmDROP_MOVE | XmDROP_COPY | XmDROP_LINK;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void dragNoneCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	dragOperations = XmDROP_NOOP;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void blendStateSourceCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	blendModel = XmBLEND_STATE_SOURCE;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void blendJustSourceCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	blendModel = XmBLEND_JUST_SOURCE;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void blendAllCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	blendModel = XmBLEND_ALL;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void blendNoneCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	blendModel = XmBLEND_NONE;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Op_northwestCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	Op_attachment = XmATTACH_NORTH_WEST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Op_northCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	Op_attachment = XmATTACH_NORTH;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Op_northeastCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	Op_attachment = XmATTACH_NORTH_EAST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Op_eastCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	Op_attachment = XmATTACH_EAST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Op_southeastCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	Op_attachment = XmATTACH_SOUTH_EAST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Op_southCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	Op_attachment = XmATTACH_SOUTH;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Op_southwestCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	Op_attachment = XmATTACH_SOUTH_WEST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Op_westCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	Op_attachment = XmATTACH_WEST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void Op_centerCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	Op_attachment = XmATTACH_CENTER;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void State_northwestCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	State_attachment = XmATTACH_NORTH_WEST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void State_northCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	State_attachment = XmATTACH_NORTH;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void State_northeastCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	State_attachment = XmATTACH_NORTH_EAST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void State_eastCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	State_attachment = XmATTACH_EAST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void State_southeastCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	State_attachment = XmATTACH_SOUTH_EAST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void State_southCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	State_attachment = XmATTACH_SOUTH;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void State_southwestCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	State_attachment = XmATTACH_SOUTH_WEST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void State_westCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	State_attachment = XmATTACH_WEST;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void State_centerCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	State_attachment = XmATTACH_CENTER;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void redFGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorForeground = redPixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void blackFGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorForeground = blackPixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void yellowFGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorForeground = yellowPixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void greenFGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorForeground = greenPixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void whiteFGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorForeground = whitePixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void redBGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorBackground = redPixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void blackBGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorBackground = blackPixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void yellowBGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorBackground = yellowPixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void greenBGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorBackground = greenPixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void whiteBGCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	cursorBackground = whitePixel;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void OpIcon1CB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	opIcon_value = OP_ICON1;
Packit b099d7
	opIcon = opIcon1;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void OpIcon2CB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	opIcon_value = OP_ICON2;
Packit b099d7
	opIcon = opIcon2;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void OpIcon3CB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	opIcon_value = OP_ICON3;
Packit b099d7
	opIcon = opIcon3;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void defOpIconCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	opIcon_value = DEFAULT_OP;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void StateIcon1CB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	stateIcon_value = STATE_ICON1;
Packit b099d7
	stateIcon = stateIcon1;
Packit b099d7
	return;
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void StateIcon2CB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	stateIcon_value = STATE_ICON2;
Packit b099d7
	stateIcon = stateIcon2;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void StateIcon3CB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	stateIcon_value = STATE_ICON3;
Packit b099d7
	stateIcon = stateIcon3;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void defStateIconCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	stateIcon_value = DEFAULT_STATE;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void SrcIcon1CB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	srcIcon_value = SRC_ICON1;
Packit b099d7
	srcIcon = srcIcon1;
Packit b099d7
	return;
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void SrcIcon2CB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	srcIcon_value = SRC_ICON2;
Packit b099d7
	srcIcon = srcIcon2;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void SrcIcon3CB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	srcIcon_value = SRC_ICON3;
Packit b099d7
	srcIcon = srcIcon3;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void defSrcIconCB(Widget w, XtPointer client_data, 
Packit b099d7
						   XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	srcIcon_value = DEFAULT_SRC;
Packit b099d7
	return;
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
/*ARGSUSED*/
Packit b099d7
static void ApplyChangesCB(Widget w, XtPointer client_data, 
Packit b099d7
									 XtPointer call_data)
Packit b099d7
{
Packit b099d7
Packit b099d7
	int	i, n;
Packit b099d7
	Arg	args[MAX_ARGS];
Packit b099d7
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNanimationStyle, animationStyle); n++;
Packit b099d7
	XtSetArg(args[n], XmNdropSiteActivity, dropActivity); n++;
Packit b099d7
	XtSetArg(args[n], XmNdropSiteOperations, dropOperations); n++;
Packit b099d7
Packit b099d7
	for (i = 0; i < numDropSites; i++)
Packit b099d7
		XmDropSiteUpdate(dropSites[i], args, n);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
void main (argc, argv)
Packit b099d7
unsigned int argc;
Packit b099d7
char **argv;
Packit b099d7
Packit b099d7
{
Packit b099d7
Packit b099d7
	Arg 		args[MAX_ARGS];
Packit b099d7
	int 		n, i, j, k, l;
Packit b099d7
	AppDataRec	appDataRec, *appData;
Packit b099d7
	Widget	 	topLevel, BulletinB, PushBtn, Text;
Packit b099d7
	XEvent		event;
Packit b099d7
	char		name[80];
Packit b099d7
	Atom		importList[1];
Packit b099d7
	Widget		*buttons;
Packit b099d7
	Cardinal	numButtons;
Packit b099d7
	XmString	tcs;
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
	appData = &appDataRec;
Packit b099d7
Packit b099d7
	use_instruction_box = True;
Packit b099d7
	use_small_icons = False;
Packit b099d7
	no_background = False;
Packit b099d7
Packit b099d7
	initiatorProtocolStyle = XmDRAG_PREFER_RECEIVER;
Packit b099d7
	receiverProtocolStyle = XmDRAG_PREFER_PREREGISTER;
Packit b099d7
	animationStyle = XmDRAG_UNDER_HIGHLIGHT;
Packit b099d7
	dropActivity = XmDROP_SITE_ACTIVE;
Packit b099d7
	dropOperations = XmDROP_MOVE | XmDROP_COPY;
Packit b099d7
	dragOperations = XmDROP_COPY;
Packit b099d7
	blendModel = XmBLEND_ALL;
Packit b099d7
	Op_attachment = XmATTACH_SOUTH_EAST;
Packit b099d7
	State_attachment = XmATTACH_NORTH_EAST;
Packit b099d7
Packit b099d7
#ifdef DEBUG
Packit b099d7
	sprintf(name, "%s.out", argv[0]);
Packit b099d7
Packit b099d7
	if ((outfp = fopen(name, "w+")) == NULL) {
Packit b099d7
Packit b099d7
		fprintf(stderr, "Can not open output file %s.out. Trying in /tmp\n",
Packit b099d7
				argv[0]);
Packit b099d7
		sprintf(name, "/tmp/%s.out", argv[0]);
Packit b099d7
		if ((outfp = fopen(name, "w+")) == NULL) {
Packit b099d7
			fprintf(stderr, "Can not open output file /tmp/%s.out. Exiting\n",
Packit b099d7
					argv[0]);
Packit b099d7
			exit(0);
Packit b099d7
		}
Packit b099d7
Packit b099d7
	}
Packit b099d7
#endif
Packit b099d7
Packit b099d7
	XSetErrorHandler(ProtoError);
Packit b099d7
Packit b099d7
	CommonTestInit(argc, argv);
Packit b099d7
Packit b099d7
	if (UserData != NULL)
Packit b099d7
		ProcessCommandArgs();
Packit b099d7
Packit b099d7
	XtAppAddActions(app_context, (XtActionList)myactions, XtNumber(myactions));
Packit b099d7
Packit b099d7
	XtGetApplicationResources(Shell1, (XtPointer)appData, 
Packit b099d7
							  appResources, XtNumber(appResources), NULL, 0);
Packit b099d7
Packit b099d7
	/* try out stuffing the translations directly in */
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNtranslations, appData->xlation1.xlation); n++;
Packit b099d7
	/* 
Packit b099d7
	 * Set the initiatorProtocolStyle and receiverProtocolStyle resources
Packit b099d7
	 * if asked to from the command line.
Packit b099d7
	 */
Packit b099d7
	xmDisplay = XmGetXmDisplay(display);
Packit b099d7
	XtSetArg(args[n], XmNdragInitiatorProtocolStyle, 
Packit b099d7
			 initiatorProtocolStyle); n++;
Packit b099d7
	XtSetArg(args[n], XmNdragReceiverProtocolStyle, 
Packit b099d7
			 receiverProtocolStyle); n++;
Packit b099d7
	XtSetValues(xmDisplay, args, n);
Packit b099d7
Packit b099d7
	XtRealizeWidget(Shell1);
Packit b099d7
Packit b099d7
	redPixel = CommonGetColor("red");
Packit b099d7
	blackPixel = CommonGetColor("black");
Packit b099d7
	yellowPixel = CommonGetColor("yellow");
Packit b099d7
	greenPixel = CommonGetColor("green");
Packit b099d7
	whitePixel = CommonGetColor("white");
Packit b099d7
	cursorForeground = redPixel;
Packit b099d7
	cursorBackground = whitePixel;
Packit b099d7
Packit b099d7
	xmScreen = XmGetXmScreen(screen);
Packit b099d7
Packit b099d7
	COMPOUND_TEXT = XmInternAtom(XtDisplay(Shell1), "COMPOUND_TEXT", False);
Packit b099d7
	DELETE = XmInternAtom(XtDisplay(Shell1), "DELETE", False);
Packit b099d7
	NULL_ATOM = XmInternAtom(XtDisplay(Shell1), "NULL", False);
Packit b099d7
Packit b099d7
	/* Create Outer Form */
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	Form = XmCreateForm(Shell1, "Form", args, n);
Packit b099d7
	XtManageChild(Form);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	Whichanim_Pulldown = XmCreatePulldownMenu(Shell1, "Whichanim_Pulldown", 
Packit b099d7
											  args, n);
Packit b099d7
Packit b099d7
	DragUnderHighLight = CreatePushButton(Whichanim_Pulldown, "HighLight");
Packit b099d7
	DragUnderShadowOut = CreatePushButton(Whichanim_Pulldown, "ShadowOut");
Packit b099d7
	DragUnderShadowIn = CreatePushButton(Whichanim_Pulldown, "ShadowIn");
Packit b099d7
	DragUnderNone = CreatePushButton(Whichanim_Pulldown, "None");
Packit b099d7
	DragUnderPixmap = CreatePushButton(Whichanim_Pulldown, "Pixmap");
Packit b099d7
Packit b099d7
	XtAddCallback(DragUnderHighLight, XmNactivateCallback, 
Packit b099d7
				  DragUnderHighLightCB, NULL);
Packit b099d7
	XtAddCallback(DragUnderShadowOut, XmNactivateCallback, 
Packit b099d7
				  DragUnderShadowOutCB, NULL);
Packit b099d7
	XtAddCallback(DragUnderShadowIn, XmNactivateCallback, 
Packit b099d7
				  DragUnderShadowInCB, NULL);
Packit b099d7
	XtAddCallback(DragUnderNone, XmNactivateCallback, 
Packit b099d7
				  DragUnderNoneCB, NULL);
Packit b099d7
	XtAddCallback(DragUnderPixmap, XmNactivateCallback, 
Packit b099d7
				  DragUnderPixmapCB, NULL);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNsensitive, False); n++;
Packit b099d7
	XtSetValues(DragUnderPixmap, args, n);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("Animation Style         ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, DragUnderHighLight); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, Whichanim_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	Whichanim_Option = XmCreateOptionMenu(Form, "Whichanim_Option", 
Packit b099d7
										   args, n);
Packit b099d7
	XtManageChild(Whichanim_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichdropAct_Pulldown = XmCreatePulldownMenu(Shell1, 
Packit b099d7
												 "WhichdropAct_Pulldown", 
Packit b099d7
												 args, n);
Packit b099d7
Packit b099d7
	dropActive = CreatePushButton(WhichdropAct_Pulldown, "Active");
Packit b099d7
	dropInactive = CreatePushButton(WhichdropAct_Pulldown, "Inactive");
Packit b099d7
Packit b099d7
	XtAddCallback(dropActive, XmNactivateCallback, dropActiveCB, NULL);
Packit b099d7
	XtAddCallback(dropInactive, XmNactivateCallback, dropInactiveCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("Drop Activity         ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, dropActive); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichdropAct_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, Whichanim_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichdropAct_Option = XmCreateOptionMenu(Form, "WhichdropAct_Option", 
Packit b099d7
											 args, n);
Packit b099d7
	XtManageChild(WhichdropAct_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichdropOp_Pulldown = XmCreatePulldownMenu(Shell1, "WhichdropOp_Pulldown", 
Packit b099d7
												  args, n);
Packit b099d7
Packit b099d7
	dropMoveCopy = CreatePushButton(WhichdropOp_Pulldown, "Move_n_Copy");
Packit b099d7
	dropMoveOnly = CreatePushButton(WhichdropOp_Pulldown, "MoveOnly");
Packit b099d7
	dropCopyOnly = CreatePushButton(WhichdropOp_Pulldown, "CopyOnly");
Packit b099d7
	dropLinkOnly = CreatePushButton(WhichdropOp_Pulldown, "LinkOnly");
Packit b099d7
	dropMoveLink = CreatePushButton(WhichdropOp_Pulldown, "Move_n_Link");
Packit b099d7
	dropCopyLink = CreatePushButton(WhichdropOp_Pulldown, "Copy_n_Link");
Packit b099d7
	dropAll = CreatePushButton(WhichdropOp_Pulldown, "All");
Packit b099d7
	dropNone = CreatePushButton(WhichdropOp_Pulldown, "None");
Packit b099d7
Packit b099d7
	XtAddCallback(dropMoveCopy, XmNactivateCallback, dropMoveCopyCB, NULL);
Packit b099d7
	XtAddCallback(dropMoveOnly, XmNactivateCallback, dropMoveOnlyCB, NULL);
Packit b099d7
	XtAddCallback(dropCopyOnly, XmNactivateCallback, dropCopyOnlyCB, NULL);
Packit b099d7
	XtAddCallback(dropLinkOnly, XmNactivateCallback, dropLinkOnlyCB, NULL);
Packit b099d7
	XtAddCallback(dropMoveLink, XmNactivateCallback, dropMoveLinkCB, NULL);
Packit b099d7
	XtAddCallback(dropCopyLink, XmNactivateCallback, dropCopyLinkCB, NULL);
Packit b099d7
	XtAddCallback(dropAll, XmNactivateCallback, dropAllCB, NULL);
Packit b099d7
	XtAddCallback(dropNone, XmNactivateCallback, dropNoneCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("Drop Operations         ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, dropMoveCopy); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichdropOp_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichdropAct_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichdropOp_Option = XmCreateOptionMenu(Form, "WhichdropOp_Option", 
Packit b099d7
										   args, n);
Packit b099d7
	XtManageChild(WhichdropOp_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichdragOp_Pulldown = XmCreatePulldownMenu(Shell1, "WhichdragOp_Pulldown", 
Packit b099d7
												  args, n);
Packit b099d7
Packit b099d7
	dragMoveCopy = CreatePushButton(WhichdragOp_Pulldown, "Move_n_Copy");
Packit b099d7
	dragMoveOnly = CreatePushButton(WhichdragOp_Pulldown, "MoveOnly");
Packit b099d7
	dragCopyOnly = CreatePushButton(WhichdragOp_Pulldown, "CopyOnly");
Packit b099d7
	dragLinkOnly = CreatePushButton(WhichdragOp_Pulldown, "LinkOnly");
Packit b099d7
	dragMoveLink = CreatePushButton(WhichdragOp_Pulldown, "Move_n_Link");
Packit b099d7
	dragCopyLink = CreatePushButton(WhichdragOp_Pulldown, "Copy_n_Link");
Packit b099d7
	dragAll = CreatePushButton(WhichdragOp_Pulldown, "All");
Packit b099d7
	dragNone = CreatePushButton(WhichdragOp_Pulldown, "None");
Packit b099d7
Packit b099d7
	XtAddCallback(dragMoveCopy, XmNactivateCallback, dragMoveCopyCB, NULL);
Packit b099d7
	XtAddCallback(dragMoveOnly, XmNactivateCallback, dragMoveOnlyCB, NULL);
Packit b099d7
	XtAddCallback(dragCopyOnly, XmNactivateCallback, dragCopyOnlyCB, NULL);
Packit b099d7
	XtAddCallback(dragLinkOnly, XmNactivateCallback, dragLinkOnlyCB, NULL);
Packit b099d7
	XtAddCallback(dragMoveLink, XmNactivateCallback, dragMoveLinkCB, NULL);
Packit b099d7
	XtAddCallback(dragCopyLink, XmNactivateCallback, dragCopyLinkCB, NULL);
Packit b099d7
	XtAddCallback(dragAll, XmNactivateCallback, dragAllCB, NULL);
Packit b099d7
	XtAddCallback(dragNone, XmNactivateCallback, dragNoneCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("Drag Operations         ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, dragCopyOnly); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichdragOp_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichdropOp_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichdragOp_Option = XmCreateOptionMenu(Form, "WhichdragOp_Option", 
Packit b099d7
										   args, n);
Packit b099d7
	XtManageChild(WhichdragOp_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichBlend_Pulldown = XmCreatePulldownMenu(Shell1, "WhichBlend_Pulldown", 
Packit b099d7
												  args, n);
Packit b099d7
Packit b099d7
	blendAll = CreatePushButton(WhichBlend_Pulldown, "All");
Packit b099d7
	blendStateSource = CreatePushButton(WhichBlend_Pulldown, "State_n_Source");
Packit b099d7
	blendJustSource = CreatePushButton(WhichBlend_Pulldown, "JustSource");
Packit b099d7
	blendNone = CreatePushButton(WhichBlend_Pulldown, "None");
Packit b099d7
Packit b099d7
	XtAddCallback(blendAll, XmNactivateCallback, blendAllCB, NULL);
Packit b099d7
	XtAddCallback(blendStateSource, XmNactivateCallback, 
Packit b099d7
				  blendStateSourceCB, NULL);
Packit b099d7
	XtAddCallback(blendJustSource, XmNactivateCallback, 
Packit b099d7
				  blendJustSourceCB, NULL);
Packit b099d7
	XtAddCallback(blendNone, XmNactivateCallback, blendNoneCB, NULL);
Packit b099d7
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("Blend Model         ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, blendAll); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichBlend_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichdragOp_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichBlend_Option = XmCreateOptionMenu(Form, "WhichBlend_Option", 
Packit b099d7
										   args, n);
Packit b099d7
	XtManageChild(WhichBlend_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichOpAttach_Pulldown = XmCreatePulldownMenu(Shell1, 
Packit b099d7
												  "WhichOpAttach_Pulldown", 
Packit b099d7
												  args, n);
Packit b099d7
Packit b099d7
	Op_northwest = CreatePushButton(WhichOpAttach_Pulldown, "NorthWest");
Packit b099d7
	Op_north = CreatePushButton(WhichOpAttach_Pulldown, "North");
Packit b099d7
	Op_northeast = CreatePushButton(WhichOpAttach_Pulldown, "NorthEast");
Packit b099d7
	Op_east = CreatePushButton(WhichOpAttach_Pulldown, "East");
Packit b099d7
	Op_southeast = CreatePushButton(WhichOpAttach_Pulldown, "SouthEast");
Packit b099d7
	Op_south = CreatePushButton(WhichOpAttach_Pulldown, "South");
Packit b099d7
	Op_southwest = CreatePushButton(WhichOpAttach_Pulldown, "SouthWest");
Packit b099d7
	Op_west = CreatePushButton(WhichOpAttach_Pulldown, "West");
Packit b099d7
	Op_center = CreatePushButton(WhichOpAttach_Pulldown, "Center");
Packit b099d7
Packit b099d7
	XtAddCallback(Op_northwest, XmNactivateCallback, Op_northwestCB, NULL);
Packit b099d7
	XtAddCallback(Op_north, XmNactivateCallback, Op_northCB, NULL);
Packit b099d7
	XtAddCallback(Op_northeast, XmNactivateCallback, Op_northeastCB, NULL);
Packit b099d7
	XtAddCallback(Op_east, XmNactivateCallback, Op_eastCB, NULL);
Packit b099d7
	XtAddCallback(Op_southeast, XmNactivateCallback, Op_southeastCB, NULL);
Packit b099d7
	XtAddCallback(Op_south, XmNactivateCallback, Op_southCB, NULL);
Packit b099d7
	XtAddCallback(Op_southwest, XmNactivateCallback, Op_southwestCB, NULL);
Packit b099d7
	XtAddCallback(Op_west, XmNactivateCallback, Op_westCB, NULL);
Packit b099d7
	XtAddCallback(Op_center, XmNactivateCallback, Op_centerCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("OpIcon Attachment   ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, Op_southeast); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichOpAttach_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichBlend_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichOpAttach_Option = XmCreateOptionMenu(Form, "WhichOpAttach_Option", 
Packit b099d7
										   args, n);
Packit b099d7
	XtManageChild(WhichOpAttach_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichStateAttach_Pulldown = XmCreatePulldownMenu(Shell1, 
Packit b099d7
												  "WhichStateAttach_Pulldown", 
Packit b099d7
												  args, n);
Packit b099d7
Packit b099d7
	State_northwest = CreatePushButton(WhichStateAttach_Pulldown, "NorthWest");
Packit b099d7
	State_north = CreatePushButton(WhichStateAttach_Pulldown, "North");
Packit b099d7
	State_northeast = CreatePushButton(WhichStateAttach_Pulldown, "NorthEast");
Packit b099d7
	State_east = CreatePushButton(WhichStateAttach_Pulldown, "East");
Packit b099d7
	State_southeast = CreatePushButton(WhichStateAttach_Pulldown, "SouthEast");
Packit b099d7
	State_south = CreatePushButton(WhichStateAttach_Pulldown, "South");
Packit b099d7
	State_southwest = CreatePushButton(WhichStateAttach_Pulldown, "SouthWest");
Packit b099d7
	State_west = CreatePushButton(WhichStateAttach_Pulldown, "West");
Packit b099d7
	State_center = CreatePushButton(WhichStateAttach_Pulldown, "Center");
Packit b099d7
Packit b099d7
	XtAddCallback(State_northwest, XmNactivateCallback, State_northwestCB, 
Packit b099d7
				  NULL);
Packit b099d7
	XtAddCallback(State_north, XmNactivateCallback, State_northCB, NULL);
Packit b099d7
	XtAddCallback(State_northeast, XmNactivateCallback, State_northeastCB, 
Packit b099d7
				  NULL);
Packit b099d7
	XtAddCallback(State_east, XmNactivateCallback, State_eastCB, NULL);
Packit b099d7
	XtAddCallback(State_southeast, XmNactivateCallback, State_southeastCB, 
Packit b099d7
				  NULL);
Packit b099d7
	XtAddCallback(State_south, XmNactivateCallback, State_southCB, NULL);
Packit b099d7
	XtAddCallback(State_southwest, XmNactivateCallback, State_southwestCB, 
Packit b099d7
				  NULL);
Packit b099d7
	XtAddCallback(State_west, XmNactivateCallback, State_westCB, NULL);
Packit b099d7
	XtAddCallback(State_center, XmNactivateCallback, State_centerCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("StateIcon Attachment ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, State_northeast); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichStateAttach_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichOpAttach_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichStateAttach_Option = XmCreateOptionMenu(Form, 
Packit b099d7
												 "WhichStateAttach_Option", 
Packit b099d7
										   		 args, n);
Packit b099d7
	XtManageChild(WhichStateAttach_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichForeground_Pulldown = XmCreatePulldownMenu(Shell1, 
Packit b099d7
													"WhichForeground_Pulldown", 
Packit b099d7
												  	args, n);
Packit b099d7
Packit b099d7
	redFG = CreatePushButton(WhichForeground_Pulldown, "Red");
Packit b099d7
	blackFG = CreatePushButton(WhichForeground_Pulldown, "Black");
Packit b099d7
	yellowFG = CreatePushButton(WhichForeground_Pulldown, "Yellow");
Packit b099d7
	greenFG = CreatePushButton(WhichForeground_Pulldown, "Green");
Packit b099d7
	whiteFG = CreatePushButton(WhichForeground_Pulldown, "White");
Packit b099d7
Packit b099d7
	XtAddCallback(redFG, XmNactivateCallback, redFGCB, NULL);
Packit b099d7
	XtAddCallback(blackFG, XmNactivateCallback, blackFGCB, NULL);
Packit b099d7
	XtAddCallback(yellowFG, XmNactivateCallback, yellowFGCB, NULL);
Packit b099d7
	XtAddCallback(greenFG, XmNactivateCallback, greenFGCB, NULL);
Packit b099d7
	XtAddCallback(whiteFG, XmNactivateCallback, whiteFGCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("Cursor Foreground     ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, redFG); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichForeground_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichStateAttach_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichForeground_Option = XmCreateOptionMenu(Form, "WhichForeground_Option", 
Packit b099d7
										   		args, n);
Packit b099d7
	XtManageChild(WhichForeground_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichBackground_Pulldown = XmCreatePulldownMenu(Shell1, 
Packit b099d7
													"WhichBackground_Pulldown", 
Packit b099d7
												  	args, n);
Packit b099d7
Packit b099d7
	redBG = CreatePushButton(WhichBackground_Pulldown, "Red");
Packit b099d7
	blackBG = CreatePushButton(WhichBackground_Pulldown, "Black");
Packit b099d7
	yellowBG = CreatePushButton(WhichBackground_Pulldown, "Yellow");
Packit b099d7
	greenBG = CreatePushButton(WhichBackground_Pulldown, "Green");
Packit b099d7
	whiteBG = CreatePushButton(WhichBackground_Pulldown, "White");
Packit b099d7
Packit b099d7
	XtAddCallback(redBG, XmNactivateCallback, redBGCB, NULL);
Packit b099d7
	XtAddCallback(blackBG, XmNactivateCallback, blackBGCB, NULL);
Packit b099d7
	XtAddCallback(yellowBG, XmNactivateCallback, yellowBGCB, NULL);
Packit b099d7
	XtAddCallback(greenBG, XmNactivateCallback, greenBGCB, NULL);
Packit b099d7
	XtAddCallback(whiteBG, XmNactivateCallback, whiteBGCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("Cursor Background     ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, whiteBG); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichBackground_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichForeground_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichBackground_Option = XmCreateOptionMenu(Form, "WhichBackground_Option", 
Packit b099d7
										   		args, n);
Packit b099d7
	XtManageChild(WhichBackground_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichOpIcon_Pulldown = XmCreatePulldownMenu(Shell1, "WhichOpIcon_Pulldown", 
Packit b099d7
												args, n);
Packit b099d7
Packit b099d7
	OpIcon1 = CreatePushButton(WhichOpIcon_Pulldown, "OpIcon1");
Packit b099d7
	OpIcon2 = CreatePushButton(WhichOpIcon_Pulldown, "OpIcon2");
Packit b099d7
	OpIcon3 = CreatePushButton(WhichOpIcon_Pulldown, "OpIcon3");
Packit b099d7
	defOpIcon = CreatePushButton(WhichOpIcon_Pulldown, "default");
Packit b099d7
Packit b099d7
	XtAddCallback(OpIcon1, XmNactivateCallback, OpIcon1CB, NULL);
Packit b099d7
	XtAddCallback(OpIcon2, XmNactivateCallback, OpIcon2CB, NULL);
Packit b099d7
	XtAddCallback(OpIcon3, XmNactivateCallback, OpIcon3CB, NULL);
Packit b099d7
	XtAddCallback(defOpIcon, XmNactivateCallback, defOpIconCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("Op Icon               ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, defOpIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichOpIcon_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichBackground_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichOpIcon_Option = XmCreateOptionMenu(Form, "WhichOpIcon_Option", 
Packit b099d7
										   	args, n);
Packit b099d7
	XtManageChild(WhichOpIcon_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichStateIcon_Pulldown = XmCreatePulldownMenu(Shell1, 
Packit b099d7
												  "WhichStateIcon_Pulldown", 
Packit b099d7
												  args, n);
Packit b099d7
Packit b099d7
	StateIcon1 = CreatePushButton(WhichStateIcon_Pulldown, "StateIcon1");
Packit b099d7
	StateIcon2 = CreatePushButton(WhichStateIcon_Pulldown, "StateIcon2");
Packit b099d7
	StateIcon3 = CreatePushButton(WhichStateIcon_Pulldown, "StateIcon3");
Packit b099d7
	defStateIcon = CreatePushButton(WhichStateIcon_Pulldown, "default");
Packit b099d7
Packit b099d7
	XtAddCallback(StateIcon1, XmNactivateCallback, StateIcon1CB, NULL);
Packit b099d7
	XtAddCallback(StateIcon2, XmNactivateCallback, StateIcon2CB, NULL);
Packit b099d7
	XtAddCallback(StateIcon3, XmNactivateCallback, StateIcon3CB, NULL);
Packit b099d7
	XtAddCallback(defStateIcon, XmNactivateCallback, defStateIconCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("State Icon            ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, defStateIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichStateIcon_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichOpIcon_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichStateIcon_Option = XmCreateOptionMenu(Form, "WhichStateIcon_Option", 
Packit b099d7
										   		args, n);
Packit b099d7
	XtManageChild(WhichStateIcon_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen"));	n++;
Packit b099d7
	WhichSrcIcon_Pulldown = XmCreatePulldownMenu(Shell1, 
Packit b099d7
												  "WhichSrcIcon_Pulldown", 
Packit b099d7
												  args, n);
Packit b099d7
Packit b099d7
	SrcIcon1 = CreatePushButton(WhichSrcIcon_Pulldown, "SrcIcon1");
Packit b099d7
	SrcIcon2 = CreatePushButton(WhichSrcIcon_Pulldown, "SrcIcon2");
Packit b099d7
	SrcIcon3 = CreatePushButton(WhichSrcIcon_Pulldown, "SrcIcon3");
Packit b099d7
	defSrcIcon = CreatePushButton(WhichSrcIcon_Pulldown, "default");
Packit b099d7
Packit b099d7
	XtAddCallback(SrcIcon1, XmNactivateCallback, SrcIcon1CB, NULL);
Packit b099d7
	XtAddCallback(SrcIcon2, XmNactivateCallback, SrcIcon2CB, NULL);
Packit b099d7
	XtAddCallback(SrcIcon3, XmNactivateCallback, SrcIcon3CB, NULL);
Packit b099d7
	XtAddCallback(defSrcIcon, XmNactivateCallback, defSrcIconCB, NULL);
Packit b099d7
Packit b099d7
    tcs = XmStringLtoRCreate("Src Icon              ",
Packit b099d7
							 XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNmenuHistory, defSrcIcon); n++;
Packit b099d7
	XtSetArg(args[n], XmNsubMenuId, WhichSrcIcon_Pulldown); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichStateIcon_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	WhichSrcIcon_Option = XmCreateOptionMenu(Form, "WhichSrcIcon_Option", 
Packit b099d7
										   		args, n);
Packit b099d7
	XtManageChild(WhichSrcIcon_Option);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNtopWidget, WhichSrcIcon_Option); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNleftOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNrightOffset, 5); n++;
Packit b099d7
	XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
Packit b099d7
	XtSetArg(args[n], XmNbottomOffset, 5); n++;
Packit b099d7
	ApplyChanges = XmCreatePushButton(Form, "ApplyChanges", args, n);
Packit b099d7
	XtManageChild(ApplyChanges);
Packit b099d7
Packit b099d7
	XtAddCallback(ApplyChanges, XmNactivateCallback, 
Packit b099d7
				  ApplyChangesCB, NULL);
Packit b099d7
Packit b099d7
Packit b099d7
	for (i = 0; i < appData->numShells; i++) {
Packit b099d7
Packit b099d7
		sprintf(name, "topLevel%d",i);
Packit b099d7
		n = 0;
Packit b099d7
		topLevel = XtCreatePopupShell(name, topLevelShellWidgetClass, Shell1, 
Packit b099d7
								   	  args, n);
Packit b099d7
Packit b099d7
		sprintf(name, "BulletinB%d",i);
Packit b099d7
		n = 0;
Packit b099d7
		BulletinB = XmCreateBulletinBoard(topLevel, name, args, n);
Packit b099d7
		XtManageChild(BulletinB);
Packit b099d7
Packit b099d7
		for (j = 0; j < appData->numCols; j++)
Packit b099d7
			for (k = 0; k < appData->numRows; k++) {
Packit b099d7
Packit b099d7
				n = 0;
Packit b099d7
				XtSetArg(args[n], XmNx, 10 + j * 100); n++;
Packit b099d7
				XtSetArg(args[n], XmNy, 10 + k * 100); n++;
Packit b099d7
				XtSetArg(args[n], XmNwidth, 90); n++;
Packit b099d7
				XtSetArg(args[n], XmNheight, 90); n++;
Packit b099d7
				if (appData->applyOverrides) {
Packit b099d7
					XtSetArg(args[n], XmNtranslations, 
Packit b099d7
							 appData->xlation2.xlation); n++;
Packit b099d7
				}
Packit b099d7
				sprintf(name, "PushBtn%d", (j * appData->numRows) + k);
Packit b099d7
				PushBtn = XmCreatePushButton(BulletinB, name, args, n);
Packit b099d7
				XtManageChild(PushBtn);
Packit b099d7
Packit b099d7
				if (appData->applyAccelerators)
Packit b099d7
					XtInstallAccelerators(PushBtn, BulletinB);
Packit b099d7
Packit b099d7
			}
Packit b099d7
Packit b099d7
		/* Register even numbered buttons as dropSites */
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNchildren, &buttons); n++;
Packit b099d7
		XtSetArg(args[n], XmNnumChildren, &numButtons); n++;
Packit b099d7
		XtGetValues(BulletinB, args, n);
Packit b099d7
		for (l = 0; l < numButtons; l++) {
Packit b099d7
Packit b099d7
			if (l % 2 != 0)
Packit b099d7
				continue;
Packit b099d7
Packit b099d7
			importList[0] = COMPOUND_TEXT;
Packit b099d7
			n = 0;
Packit b099d7
			XtSetArg(args[n], XmNdragProc, HandleDrag); n++;
Packit b099d7
			XtSetArg(args[n], XmNdropProc, HandleDrop); n++;
Packit b099d7
			if (l != 2) {
Packit b099d7
				XtSetArg(args[n], XmNimportTargets, importList); n++;
Packit b099d7
				XtSetArg(args[n], XmNnumImportTargets, 1); n++;
Packit b099d7
			}
Packit b099d7
Packit b099d7
Packit b099d7
			if (numDropSites >= MAX_DROPSITES) {
Packit b099d7
Packit b099d7
				fprintf(stderr, "Trying to register too many dropSites\n");
Packit b099d7
#ifdef DEBUG
Packit b099d7
				fflush(outfp);
Packit b099d7
				fclose(outfp);
Packit b099d7
#endif
Packit b099d7
				exit(0);
Packit b099d7
Packit b099d7
			}
Packit b099d7
Packit b099d7
			XmDropSiteRegister(buttons[l], args, n);
Packit b099d7
			dropSites[numDropSites] = buttons[l];
Packit b099d7
			numDropSites++;
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
		n = 0;
Packit b099d7
		XtSetArg(args[n], XmNx, 10); n++;
Packit b099d7
		XtSetArg(args[n], XmNy, 10 + k * 100); n++;
Packit b099d7
		XtSetArg(args[n], XmNwidth, k * 100); n++;
Packit b099d7
		XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
Packit b099d7
		sprintf(name, "Text%d",i);
Packit b099d7
		Text = XmCreateText(BulletinB, name, args, n);
Packit b099d7
		XtManageChild(Text);
Packit b099d7
Packit b099d7
		XtPopup(topLevel, XtGrabNone);
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
	opIcon_value = DEFAULT_OP;
Packit b099d7
	stateIcon_value = DEFAULT_STATE;
Packit b099d7
	srcIcon_value = DEFAULT_SRC;
Packit b099d7
Packit b099d7
	if (use_instruction_box == True) {
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
		CommonPause();
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
	XtAppMainLoop(app_context);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static Widget  CreatePushButton(Widget parent, char *label)
Packit b099d7
Packit b099d7
{
Packit b099d7
Packit b099d7
	Widget			widget;
Packit b099d7
	register int	n;
Packit b099d7
	Arg				args[3];
Packit b099d7
	XmString		tcs;
Packit b099d7
Packit b099d7
	tcs = XmStringLtoRCreate(label, XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	XtSetArg(args[n], XmNlabelString, tcs); n++;
Packit b099d7
	XtSetArg(args[n], XmNbackground, CommonGetColor("darkgreen")); n++;
Packit b099d7
	widget = XmCreatePushButton(parent, label, args, n);
Packit b099d7
	XtManageChild(widget);
Packit b099d7
Packit b099d7
	XmStringFree(tcs);
Packit b099d7
Packit b099d7
	return(widget);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
#define	WORD_LEN	32
Packit b099d7
Packit b099d7
ProcessCommandArgs()
Packit b099d7
{
Packit b099d7
Packit b099d7
	char	*user_data;
Packit b099d7
	char	next_word[WORD_LEN + 1];
Packit b099d7
	int     num_spaces;
Packit b099d7
Packit b099d7
	user_data = UserData;
Packit b099d7
Packit b099d7
	while (*user_data != '\0') {
Packit b099d7
Packit b099d7
		get_next_word(user_data, next_word, &num_spaces);
Packit b099d7
		user_data += (strlen(next_word) + num_spaces);
Packit b099d7
Packit b099d7
		if (strcmp(next_word, "-I") == 0) {
Packit b099d7
Packit b099d7
			get_next_word(user_data, next_word, &num_spaces);
Packit b099d7
Packit b099d7
			if (strcmp(next_word, "P") == 0)
Packit b099d7
				initiatorProtocolStyle = XmDRAG_PREREGISTER;
Packit b099d7
			else if (strcmp(next_word, "D") == 0)
Packit b099d7
				initiatorProtocolStyle = XmDRAG_DYNAMIC;
Packit b099d7
			else if (strcmp(next_word, "N") == 0)
Packit b099d7
				initiatorProtocolStyle = XmDRAG_NONE;
Packit b099d7
			else if (strcmp(next_word, "DO") == 0)
Packit b099d7
				initiatorProtocolStyle = XmDRAG_DROP_ONLY;
Packit b099d7
			else if (strcmp(next_word, "PD") == 0)
Packit b099d7
				initiatorProtocolStyle = XmDRAG_PREFER_DYNAMIC;
Packit b099d7
			else if (strcmp(next_word, "PP") == 0)
Packit b099d7
				initiatorProtocolStyle = XmDRAG_PREFER_PREREGISTER;
Packit b099d7
			else if (strcmp(next_word, "PR") == 0)
Packit b099d7
				initiatorProtocolStyle = XmDRAG_PREFER_RECEIVER;
Packit b099d7
			else
Packit b099d7
				initiatorProtocolStyle = XmDRAG_PREFER_RECEIVER;
Packit b099d7
Packit b099d7
			user_data += (strlen(next_word) + num_spaces);
Packit b099d7
			continue;
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
		if (strcmp(next_word, "-R") == 0) {
Packit b099d7
Packit b099d7
			get_next_word(user_data, next_word, &num_spaces);
Packit b099d7
Packit b099d7
			if (strcmp(next_word, "P") == 0)
Packit b099d7
				receiverProtocolStyle = XmDRAG_PREREGISTER;
Packit b099d7
			else if (strcmp(next_word, "D") == 0)
Packit b099d7
				receiverProtocolStyle = XmDRAG_DYNAMIC;
Packit b099d7
			else if (strcmp(next_word, "N") == 0)
Packit b099d7
				receiverProtocolStyle = XmDRAG_NONE;
Packit b099d7
			else if (strcmp(next_word, "DO") == 0)
Packit b099d7
				receiverProtocolStyle = XmDRAG_DROP_ONLY;
Packit b099d7
			else if (strcmp(next_word, "PD") == 0)
Packit b099d7
				receiverProtocolStyle = XmDRAG_PREFER_DYNAMIC;
Packit b099d7
			else if (strcmp(next_word, "PP") == 0)
Packit b099d7
				receiverProtocolStyle = XmDRAG_PREFER_PREREGISTER;
Packit b099d7
			/* Prefer Receiver is not allowed if the client is a receiver */
Packit b099d7
			else
Packit b099d7
				receiverProtocolStyle = XmDRAG_PREFER_PREREGISTER;
Packit b099d7
Packit b099d7
			user_data += (strlen(next_word) + num_spaces);
Packit b099d7
			continue;
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
		if (strcmp(next_word, "-noinstruct") == 0) {
Packit b099d7
			use_instruction_box = False;
Packit b099d7
			continue;
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
		if (strcmp(next_word, "-smallicons") == 0) {
Packit b099d7
			use_small_icons = True;
Packit b099d7
			continue;
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
		if (strcmp(next_word, "-nobackground") == 0) {
Packit b099d7
			no_background = True;
Packit b099d7
			continue;
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
		if (strcmp(next_word, "-changeop") == 0) {
Packit b099d7
			change_op = True;
Packit b099d7
			continue;
Packit b099d7
Packit b099d7
		}
Packit b099d7
Packit b099d7
	}
Packit b099d7
Packit b099d7
	free(UserData);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
get_next_word(source, dest, spaces)
Packit b099d7
char	*source;
Packit b099d7
char	*dest;
Packit b099d7
int		*spaces;
Packit b099d7
{
Packit b099d7
Packit b099d7
	int	n;
Packit b099d7
	int	space_count;
Packit b099d7
Packit b099d7
	space_count = 0;
Packit b099d7
Packit b099d7
	while (isspace(*source)) {
Packit b099d7
		source++;
Packit b099d7
		space_count++;
Packit b099d7
	}
Packit b099d7
Packit b099d7
	n = 0;
Packit b099d7
	while (!isspace(*source) && *source != '\0' && n < WORD_LEN) {
Packit b099d7
		*dest++ = *source++;
Packit b099d7
		n++;
Packit b099d7
	}
Packit b099d7
	*dest = '\0';
Packit b099d7
	*spaces = space_count;
Packit b099d7
Packit b099d7
}