XCOMM! CDE_INSTALLATION_TOP/bin/dtksh XCOMM $XConsortium: EventHandlerTest.src /main/3 1996/04/23 20:18:10 drk $ XCOMM ######################################################################### XCOMM (c) Copyright 1993, 1994 Hewlett-Packard Company XCOMM (c) Copyright 1993, 1994 International Business Machines Corp. XCOMM (c) Copyright 1993, 1994 Sun Microsystems, Inc. XCOMM (c) Copyright 1993, 1994 Unix System Labs, Inc., a subsidiary of XCOMM Novell, Inc. XCOMM ######################################################################### XCOMM XCOMM This sample shell script demonstrates how event handlers can be added XCOMM and removed. It also demonstrates how the EH_WIDGET and EH_EVENT XCOMM convenience environment variables can be referenced. XCOMM 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")" } XCOMM PushbuttonCallback: Adds an event handler to the form widget AddMaskableEventHandler1() { XtAddEventHandler $FORM2 "Button2MotionMask" False \ "EventHandler1 1" } XCOMM PushbuttonCallback: Adds an event handler to the form widget AddMaskableEventHandler2() { XtAddEventHandler $FORM2 "ButtonPressMask|ButtonReleaseMask" False \ "EventHandler1 1" } XCOMM PushbuttonCallback: Adds an event handler to the form widget AddMaskableEventHandler3() { XtAddEventHandler $FORM2 "Button2MotionMask" False \ "EventHandler1 2" } XCOMM PushbuttonCallback: Adds an event handler to the form widget AddNonmaskableEventHandler() { XtAddEventHandler $FORM2 "NoEventMask" True "EventHandler2 1" } XCOMM PushbuttonCallback: Adds an event handler to the form widget. XCOMM Should report a bad event mask. AddBadEventHandler() { XtAddEventHandler $FORM2 "fooMask" False "EventHandler2 1" } XCOMM PushbuttonCallback: Removes an event handler to the form widget RemoveEventHandler1() { XtRemoveEventHandler $FORM2 "Button2MotionMask" False \ "EventHandler1 1" } XCOMM PushbuttonCallback: Removes an event handler to the form widget RemoveEventHandler2() { XtRemoveEventHandler $FORM2 "ButtonPressMask|ButtonReleaseMask" False \ "EventHandler1 1" } XCOMM PushbuttonCallback: Removes an event handler to the form widget RemoveEventHandler1and2() { XtRemoveEventHandler $FORM2 "XtAllEvents" True "EventHandler1 1" } XCOMM ###################### 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