|
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 |
|