Blame tests/DragAndDrop/DNDdropSiteD.c

Packit b099d7
/* $XConsortium: DNDdropSiteD.c /main/5 1995/07/15 21:00:25 drk $ */
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
/*
Packit b099d7
 * HISTORY
Packit b099d7
 */
Packit b099d7
Packit b099d7
#include <testlib.h>
Packit b099d7
#include "../Toolkit/bitmaps/gnu.bmp"
Packit b099d7
#include "DNDdropSiteD.h"
Packit b099d7
Packit b099d7
/*
Packit b099d7
 * Client data structure
Packit b099d7
 */
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
		
Packit b099d7
		Pixel TestPixel;
Packit b099d7
		Pixmap TestPixmap;
Packit b099d7
		XmString TestString;
Packit b099d7
		Widget	TestWidget[2];
Packit b099d7
		
Packit b099d7
		
Packit b099d7
		int    TestInt;
Packit b099d7
		char *TestChar;
Packit b099d7
	        
Packit b099d7
	      } DropClientData;		
Packit b099d7
Packit b099d7
Packit b099d7
/*
Packit b099d7
 * Local functions
Packit b099d7
 */
Packit b099d7
Packit b099d7
static void
Packit b099d7
DragProc (Widget, XtPointer, XtPointer);
Packit b099d7
Packit b099d7
static void
Packit b099d7
DropProc (Widget, XtPointer, XtPointer);
Packit b099d7
Packit b099d7
/*
Packit b099d7
 * This is the drop site being  tested
Packit b099d7
 */
Packit b099d7
Packit b099d7
Widget DropSite;
Packit b099d7
Packit b099d7
void
Packit b099d7
main (int argc, char **argv)
Packit b099d7
{
Packit b099d7
Packit b099d7
Packit b099d7
  	Arg args[10];
Packit b099d7
  	int n;
Packit b099d7
	Widget Frame1;
Packit b099d7
Packit b099d7
	int num_widgets = XtNumber (WidgetStruct);  /* Number of widgets. */
Packit b099d7
	int w;
Packit b099d7
	
Packit b099d7
Packit b099d7
	/*
Packit b099d7
	 * dropSiteData related variables
Packit b099d7
	 */
Packit b099d7
Packit b099d7
	DropClientData MyClientData;
Packit b099d7
	Widget FormD1;
Packit b099d7
	
Packit b099d7
	Widget MyWidget[2];
Packit b099d7
	XmString MyString;
Packit b099d7
	Pixel MyPixel;
Packit b099d7
	Pixmap MyPixmap;
Packit b099d7
Packit b099d7
	int MyInt;
Packit b099d7
	char *MyChar;
Packit b099d7
Packit b099d7
Packit b099d7
	CommonTestInit (argc, argv);
Packit b099d7
	n=0;
Packit b099d7
	Frame1 = XmCreateFrame (Shell1, "Frame1", args, n);
Packit b099d7
	XtManageChild (Frame1);
Packit b099d7
Packit b099d7
	/*
Packit b099d7
	 * Create PushButton as default
Packit b099d7
	 */
Packit b099d7
Packit b099d7
	if (UserData == NULL)
Packit b099d7
	  {
Packit b099d7
	    n=0;
Packit b099d7
	    DropSite = XmCreatePushButton (Frame1, "DropSite", args, n);
Packit b099d7
	  }
Packit b099d7
	
Packit b099d7
	else
Packit b099d7
	  {
Packit b099d7
	    /*
Packit b099d7
	     * Create widget which user wants
Packit b099d7
	     */
Packit b099d7
Packit b099d7
	    w=0;
Packit b099d7
	    while (strcmp (UserData, WidgetStruct[w].name) != 0 && 
Packit b099d7
	       (w < num_widgets))
Packit b099d7
	      w++;
Packit b099d7
Packit b099d7
	    if (w==num_widgets) 
Packit b099d7
	      {
Packit b099d7
           	printf ("Not a valid widget!\n");
Packit b099d7
      		exit(0);
Packit b099d7
	      }
Packit b099d7
  
Packit b099d7
	    DropSite = (*WidgetStruct[w].CreateFunction)(Frame1,"DropSite"
Packit b099d7
							 ,args,n);
Packit b099d7
	   
Packit b099d7
	  }
Packit b099d7
	
Packit b099d7
	XtManageChild (DropSite);
Packit b099d7
   
Packit b099d7
   	/*
Packit b099d7
    	 * Initialize client data structure
Packit b099d7
    	 */
Packit b099d7
	
Packit b099d7
	n=0;
Packit b099d7
	FormD1 = XmCreateFormDialog (Shell1, "FormD1", args, n);
Packit b099d7
	XtManageChild (FormD1);
Packit b099d7
Packit b099d7
	
Packit b099d7
	n=0;
Packit b099d7
	XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
Packit b099d7
	MyWidget[0]=
Packit b099d7
	XmCreatePushButton (FormD1, "PushB", args, n);
Packit b099d7
	XtManageChild (MyWidget[0]);
Packit b099d7
Packit b099d7
	n=0;
Packit b099d7
	XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
	XtSetArg (args[n], XmNtopWidget, MyWidget[0]); n++;
Packit b099d7
	XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
Packit b099d7
	MyWidget[1]=
Packit b099d7
	XmCreatePushButton (FormD1, "PushB", args, n);
Packit b099d7
	XtManageChild (MyWidget[1]);	
Packit b099d7
Packit b099d7
	MyPixel = CommonGetColor ("Red");
Packit b099d7
Packit b099d7
	MyPixmap =  XCreatePixmapFromBitmapData(display,
Packit b099d7
                                DefaultRootWindow(display),
Packit b099d7
                                gnu_bits, gnu_width, gnu_height,
Packit b099d7
                                WhitePixel(display,DefaultScreen(display)),
Packit b099d7
                                BlackPixel(display,DefaultScreen(display)),
Packit b099d7
                                DefaultDepth(display,DefaultScreen(display)));
Packit b099d7
	MyString = XmStringCreate ("MyString", XmSTRING_DEFAULT_CHARSET);
Packit b099d7
	
Packit b099d7
	MyInt = 2;
Packit b099d7
	MyChar = ("The sixth sick sheikh's sixth sheep's sick\n");
Packit b099d7
Packit b099d7
Packit b099d7
	MyClientData.TestWidget[0] = MyWidget[0];
Packit b099d7
	MyClientData.TestWidget[1] = MyWidget[1];
Packit b099d7
	MyClientData.TestPixel = MyPixel;
Packit b099d7
	MyClientData.TestPixmap = MyPixmap;
Packit b099d7
Packit b099d7
	MyClientData.TestInt = MyInt;
Packit b099d7
	MyClientData.TestChar = MyChar;
Packit b099d7
	
Packit b099d7
	
Packit b099d7
	/*
Packit b099d7
	 * Create the drop site
Packit b099d7
	 */
Packit b099d7
Packit b099d7
      	n=0;
Packit b099d7
      	XtSetArg (args[n], XmNdragProc, DragProc); n++;
Packit b099d7
      	XtSetArg (args[n], XmNdropProc, DropProc); n++;
Packit b099d7
      	XtSetArg (args[n], XmNdropSiteData, (XtPointer)MyClientData); n++;
Packit b099d7
      	XmDropSiteRegister (DropSite, args, n);
Packit b099d7
Packit b099d7
      	XtRealizeWidget (Shell1);
Packit b099d7
Packit b099d7
	CommonPause();
Packit b099d7
Packit b099d7
	XtAppMainLoop(app_context);
Packit b099d7
  
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void
Packit b099d7
DragProc (Widget w, XtPointer call_data, XtPointer client_data)	
Packit b099d7
{
Packit b099d7
        int n;
Packit b099d7
	Arg args[10];
Packit b099d7
	
Packit b099d7
	DropClientData GetData;
Packit b099d7
Packit b099d7
	n=0;
Packit b099d7
	XtSetArg (args[n], XmNdropSiteData, &GetData);
Packit b099d7
	XmDropSiteRetrieve (w, args, n);
Packit b099d7
Packit b099d7
	if (call_data.reason == XmCR_DROP_SITE_ENTER_MESSAGE)
Packit b099d7
	   {
Packit b099d7
	   	printf ("%s\n", GetData.TestChar);
Packit b099d7
		printf ("The magic number is %d\n", GetData.TestInt);
Packit b099d7
	        XtSetArg (args[n], XmNbackground, GetData.TestPixel); n++;
Packit b099d7
	        XtSetArg (args[n], XmNlabelString, GetData.TestString); n++;
Packit b099d7
	        XtSetArg (args[n], XmNlabelPixmap, GetData.TestPixmap); n++;
Packit b099d7
		XtSetValues (GetData.TestWidget[0], args, n);
Packit b099d7
	   } 
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
static void
Packit b099d7
DropProc (Widget w, XtPointer call_data, XtPointer client_data)	
Packit b099d7
{
Packit b099d7
	
Packit b099d7
	DropClientData GetData;
Packit b099d7
	Arg args[10];
Packit b099d7
	int n;
Packit b099d7
Packit b099d7
	n=0;
Packit b099d7
	XtSetArg (args[n], XmNdropSiteData, &GetData);
Packit b099d7
	XmDropSiteRetrieve (w, args, n);
Packit b099d7
Packit b099d7
	if (call_data.reason == XmCR_DROP_SITE_ENTER_MESSAGE)
Packit b099d7
	   {
Packit b099d7
	   	printf ("%s\n", GetData.TestChar);
Packit b099d7
		printf ("The magic number is %d\n", GetData.TestInt);
Packit b099d7
	        XtSetArg (args[n], XmNbackground, GetData.TestPixel); n++;
Packit b099d7
	        XtSetArg (args[n], XmNlabelString, GetData.TestString); n++;
Packit b099d7
	        XtSetArg (args[n], XmNlabelPixmap, GetData.TestPixmap); n++;
Packit b099d7
		XtSetValues (GetData.TestWidget[1], args, n);
Packit b099d7
	   }
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7