#! /usr/dt/bin/dtksh
#  $XConsortium: EventHandlerTest.src /main/3 1996/04/23 20:18:10 drk $

# #########################################################################
#   (c) Copyright 1993, 1994 Hewlett-Packard Company	
#   (c) Copyright 1993, 1994 International Business Machines Corp.
#   (c) Copyright 1993, 1994 Sun Microsystems, Inc.
#   (c) Copyright 1993, 1994 Unix System Labs, Inc., a subsidiary of
#       Novell, Inc.
# #########################################################################


# 
#  This sample shell script demonstrates how event handlers can be added
#  and removed.  It also demonstrates how the EH_WIDGET and EH_EVENT
#  convenience environment variables can be referenced.
# 


EventHandler1()
{
   echo "EH_WIDGET ="$EH_WIDGET
   echo "EH_EVENT ="$EH_EVENT
   echo "EH_EVENT.TYPE ="${EH_EVENT.TYPE}
   echo "event handler 1 invoked ("$1")"
}

EventHandler2()
{
   echo "EH_WIDGET ="$EH_WIDGET
   echo "EH_EVENT ="$EH_EVENT
   echo "EH_EVENT.TYPE ="${EH_EVENT.TYPE}
   echo "event handler 1 invoked ("$1")"
}

#  PushbuttonCallback: Adds an event handler to the form widget
AddMaskableEventHandler1()
{
   XtAddEventHandler $FORM2 "Button2MotionMask" False  	 "EventHandler1 1"

}

#  PushbuttonCallback: Adds an event handler to the form widget
AddMaskableEventHandler2()
{
   XtAddEventHandler $FORM2 "ButtonPressMask|ButtonReleaseMask" False  	 "EventHandler1 1"

}

#  PushbuttonCallback: Adds an event handler to the form widget
AddMaskableEventHandler3()
{
   XtAddEventHandler $FORM2 "Button2MotionMask" False  	 "EventHandler1 2"

}

#  PushbuttonCallback: Adds an event handler to the form widget
AddNonmaskableEventHandler()
{
   XtAddEventHandler $FORM2 "NoEventMask" True "EventHandler2 1"
}

#  PushbuttonCallback: Adds an event handler to the form widget.
#                      Should report a bad event mask.
AddBadEventHandler()
{
   XtAddEventHandler $FORM2 "fooMask" False "EventHandler2 1"
}

#  PushbuttonCallback: Removes an event handler to the form widget
RemoveEventHandler1()
{
   XtRemoveEventHandler $FORM2 "Button2MotionMask" False  	 "EventHandler1 1"

}

#  PushbuttonCallback: Removes an event handler to the form widget
RemoveEventHandler2()
{
   XtRemoveEventHandler $FORM2 "ButtonPressMask|ButtonReleaseMask" False  	 "EventHandler1 1"

}

#  PushbuttonCallback: Removes an event handler to the form widget
RemoveEventHandler1and2()
{
   XtRemoveEventHandler $FORM2 "XtAllEvents" True "EventHandler1 1"
}



# ###################### Create the Main UI ###############################

XtInitialize TOPLEVEL eventHandlerTest EventHandlerTest "$0" "$@"

XtCreateManagedWidget FORM form XmForm $TOPLEVEL

XtCreateManagedWidget FORM2 form2 XmForm $FORM  	topAttachment:ATTACH_FORM  	leftAttachment:ATTACH_FORM  	rightAttachment:ATTACH_FORM



XtSetValues $FORM2 height:150 width:150

XtCreateManagedWidget SEP sep XmSeparator $FORM  	topAttachment:ATTACH_WIDGET  	topWidget:$FORM2  	leftAttachment:ATTACH_FORM  	rightAttachment:ATTACH_FORM





XtCreateManagedWidget PB1 pb XmPushButton $FORM  	labelString:"Add Maskable Event Handler 1"  	topAttachment:ATTACH_WIDGET  	topWidget:$SEP  	topOffset:10  	leftAttachment:ATTACH_POSITION  	leftPosition:10  	rightAttachment:ATTACH_POSITION  	rightPosition:40








XtAddCallback $PB1 activateCallback AddMaskableEventHandler1

XtCreateManagedWidget PB2 pb2 XmPushButton $FORM  	labelString:"Add Maskable Event Handler 2"  	topAttachment:ATTACH_WIDGET  	topWidget:$SEP  	topOffset:10  	leftAttachment:ATTACH_POSITION  	leftPosition:60  	rightAttachment:ATTACH_POSITION  	rightPosition:90








XtAddCallback $PB2 activateCallback AddMaskableEventHandler2

XtCreateManagedWidget PB3 pb3 XmPushButton $FORM  	labelString:"Add Maskable Event Handler 3"  	topAttachment:ATTACH_WIDGET  	topWidget:$PB2  	topOffset:10  	leftAttachment:ATTACH_POSITION  	leftPosition:10  	rightAttachment:ATTACH_POSITION  	rightPosition:40 








XtAddCallback $PB3 activateCallback AddMaskableEventHandler3

XtCreateManagedWidget PB4 pb4 XmPushButton $FORM  	labelString:"Add Maskable Event Handler 4"  	topAttachment:ATTACH_WIDGET  	topWidget:$PB2  	topOffset:10  	leftAttachment:ATTACH_POSITION  	leftPosition:60  	rightAttachment:ATTACH_POSITION  	rightPosition:90








XtAddCallback $PB4 activateCallback AddMaskableEventHandler4
XtSetSensitive $PB4 False

XtCreateManagedWidget PB5 pb5 XmPushButton $FORM  	labelString:"Add non-maskable Event Handler"  	topAttachment:ATTACH_WIDGET  	topWidget:$PB4  	topOffset:10  	leftAttachment:ATTACH_POSITION  	leftPosition:10  	rightAttachment:ATTACH_POSITION  	rightPosition:40








XtAddCallback $PB5 activateCallback AddNonmaskableEventHandler

XtCreateManagedWidget PB6 pb6 XmPushButton $FORM  	labelString:"Add Bad Event Handler"  	topAttachment:ATTACH_WIDGET  	topWidget:$PB4  	topOffset:10  	leftAttachment:ATTACH_POSITION  	leftPosition:60  	rightAttachment:ATTACH_POSITION  	rightPosition:90








XtAddCallback $PB6 activateCallback AddBadEventHandler

XtCreateManagedWidget PB7 pb7 XmPushButton $FORM  	labelString:"Remove Maskable Event Handler 1"  	topAttachment:ATTACH_WIDGET  	topWidget:$PB6  	topOffset:10  	leftAttachment:ATTACH_POSITION  	leftPosition:10  	rightAttachment:ATTACH_POSITION  	rightPosition:40 








XtAddCallback $PB7 activateCallback RemoveEventHandler1

XtCreateManagedWidget PB8 pb8 XmPushButton $FORM  	labelString:"Remove Maskable Event Handler 2"  	topAttachment:ATTACH_WIDGET  	topWidget:$PB6  	topOffset:10  	leftAttachment:ATTACH_POSITION  	leftPosition:60  	rightAttachment:ATTACH_POSITION  	rightPosition:90








XtAddCallback $PB8 activateCallback RemoveEventHandler2

XtCreateManagedWidget PB9 pb9 XmPushButton $FORM  	labelString:"Remove Maskable Event Handler 1 and 2"  	topAttachment:ATTACH_WIDGET  	topWidget:$PB8  	topOffset:10  	leftAttachment:ATTACH_POSITION  	leftPosition:10  	rightAttachment:ATTACH_POSITION  	rightPosition:40  	bottomAttachment:ATTACH_FORM  	bottomOffset:10

XtAddCallback $PB9 activateCallback RemoveEventHandler1and2


XtRealizeWidget $TOPLEVEL

XtMainLoop

