#! /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 the CB_WIDGET and CB_CALL_DATA # convenience environment variables can be referenced within a callback # function. # # PushButton Callback: Forces the scale to reset to the origin ResetScale() { XmScaleSetValue $SCALE 0 } # PushButton Callback: Forces the scale to its minimum value SetScaleMin() { XmScaleSetValue $SCALE -200 } # PushButton Callback: Forces the scale to its maximum value SetScaleMax() { XmScaleSetValue $SCALE 200 echo "CB Widget = "$CB_WIDGET echo "CallData = "$CB_CALL_DATA echo "CallData.Reason = "${CB_CALL_DATA.REASON} echo "CallData.Event = "${CB_CALL_DATA.EVENT} echo "CallData.Event.Type = "${CB_CALL_DATA.EVENT.TYPE} echo "CallData.Event.Xbutton.Type = "${CB_CALL_DATA.EVENT.XBUTTON.TYPE} echo "CallData.Event.Xbutton.Serial = "${CB_CALL_DATA.EVENT.XBUTTON.SERIAL} echo "CallData.Event.Xbutton.Send_Event = "${CB_CALL_DATA.EVENT.XBUTTON.SEND_EVENT} echo "CallData.Event.Xbutton.Display = "${CB_CALL_DATA.EVENT.XBUTTON.DISPLAY} echo "CallData.Event.Xbutton.Window = "${CB_CALL_DATA.EVENT.XBUTTON.WINDOW} echo "CallData.Event.Xbutton.Root = "${CB_CALL_DATA.EVENT.XBUTTON.ROOT} echo "CallData.Event.Xbutton.Subwindow = "${CB_CALL_DATA.EVENT.XBUTTON.SUBWINDOW} echo "CallData.Event.Xbutton.Time = "${CB_CALL_DATA.EVENT.XBUTTON.TIME} echo "CallData.Event.Xbutton.X = "${CB_CALL_DATA.EVENT.XBUTTON.X} echo "CallData.Event.Xbutton.Y = "${CB_CALL_DATA.EVENT.XBUTTON.Y} echo "CallData.Event.Xbutton.X_root = "${CB_CALL_DATA.EVENT.XBUTTON.X_ROOT} echo "CallData.Event.Xbutton.Y_root = "${CB_CALL_DATA.EVENT.XBUTTON.Y_ROOT} echo "CallData.Event.Xbutton.State = "${CB_CALL_DATA.EVENT.XBUTTON.STATE} echo "CallData.Event.Xbutton.Button = "${CB_CALL_DATA.EVENT.XBUTTON.BUTTON} echo "CallData.Event.Xbutton.Same_Screen = "${CB_CALL_DATA.EVENT.XBUTTON.SAME_SCREEN} echo } # Scale Callback: Invoked when the user interactively modified the scale value ScaleValueChanged() { XmScaleGetValue $CB_WIDGET VALUE echo "New Scale Value = "$VALUE echo "CB Widget = "$CB_WIDGET echo "CallData = "$CB_CALL_DATA echo "CallData.Value = "${CB_CALL_DATA.VALUE} echo "CallData.Event = "${CB_CALL_DATA.EVENT} echo "CallData.Event.Xany.Type = "${CB_CALL_DATA.EVENT.XANY.TYPE} echo "CallData.Event.Type = "${CB_CALL_DATA.EVENT.TYPE} echo "CallData.Reason = "${CB_CALL_DATA.REASON} echo } ######################### Create the Main UI ################################# XtInitialize TOPLEVEL command1 Command1 "$0" "$@" XtCreateManagedWidget FORM form XmForm $TOPLEVEL XtCreateManagedWidget SCALE scale XmScale $FORM showValue:True orientation:HORIZONTAL maximum:200 minimum:-200 topAttachment:ATTACH_FORM topOffset:10 leftAttachment:ATTACH_FORM leftOffset:10 rightAttachment:ATTACH_FORM rightOffset:10 XtAddCallback $SCALE valueChangedCallback ScaleValueChanged XtCreateManagedWidget SEP sep XmSeparator $FORM topAttachment:ATTACH_WIDGET topWidget:$SCALE topOffset:10 leftAttachment:ATTACH_FORM rightAttachment:ATTACH_FORM XtCreateManagedWidget PB pb XmPushButton $FORM labelString:"Reset Scale" topAttachment:ATTACH_WIDGET topOffset:10 topWidget:$SEP bottomAttachment:ATTACH_FORM bottomOffset:10 leftAttachment:ATTACH_POSITION leftPosition:10 rightAttachment:ATTACH_POSITION rightPosition:30 XtAddCallback $PB activateCallback ResetScale XtCreateManagedWidget PB2 pb XmPushButton $FORM labelString:"Set Scale Max" topAttachment:ATTACH_WIDGET topOffset:10 topWidget:$SEP bottomAttachment:ATTACH_FORM bottomOffset:10 leftAttachment:ATTACH_POSITION leftPosition:40 rightAttachment:ATTACH_POSITION rightPosition:60 XtAddCallback $PB2 activateCallback SetScaleMax XtCreateManagedWidget PB3 pb XmPushButton $FORM labelString:"Set Scale Min" topAttachment:ATTACH_WIDGET topOffset:10 topWidget:$SEP bottomAttachment:ATTACH_FORM bottomOffset:10 leftAttachment:ATTACH_POSITION leftPosition:70 rightAttachment:ATTACH_POSITION rightPosition:90 XtAddCallback $PB3 activateCallback SetScaleMin XtRealizeWidget $TOPLEVEL XtMainLoop