#! /usr/dt/bin/dtksh ########################################################################## # (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