#! /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 widget callbacks can be
# added and removed.  It adds callbacks both using XtAddCallback and
# by specifying a callback as a resource, when the test pushbutton
# is created.
#

# The activate callback which can be dynamically added and removed
ActivateCallback1()
{
   echo "activateCallback1 invoked"
}

# The activate callback which is added when the widget was created
ActivateCallback2()
{
   echo "activateCallback2 invoked"
}

# Pushbutton Callback: Adds an activate callback to the test pushbutton
AddCallback1()
{
   XtAddCallback $TESTPB activateCallback ActivateCallback1
   XtGetValues $TESTPB activateCallback:AC
   echo "Callback list = "$AC
}

# Pushbutton Callback: Removes an activate callback from the test pushbutton
DeleteCallback1()
{
   XtRemoveCallback $TESTPB activateCallback ActivateCallback1
   XtGetValues $TESTPB activateCallback:AC2
   echo "Callback list = "$AC2
}

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

XtInitialize TOPLEVEL callbackTest CallbackTest "$0" "$@"

XtCreateManagedWidget FORM form XmForm $TOPLEVEL

XtCreateManagedWidget PB1 pb XmPushButton $FORM \
	labelString:"Add Callback1" \
	topAttachment:ATTACH_FORM \
	topOffset:10 \
	leftAttachment:ATTACH_POSITION \
	leftPosition:10 \
	rightAttachment:ATTACH_POSITION \
	rightPosition:40 \
	activateCallback:AddCallback1

XtCreateManagedWidget PB2 pb2 XmPushButton $FORM \
	labelString:"Delete Callback1" \
	topAttachment:ATTACH_FORM \
	topOffset:10 \
	leftAttachment:ATTACH_POSITION \
	leftPosition:60 \
	rightAttachment:ATTACH_POSITION \
	rightPosition:90 \
	activateCallback:DeleteCallback1

XtCreateManagedWidget TESTPB testpb XmPushButton $FORM \
	labelString:"Test Button" \
	topAttachment:ATTACH_WIDGET \
	topWidget:$PB2 \
	topOffset:20 \
	leftAttachment:ATTACH_POSITION \
	leftPosition:20 \
	rightAttachment:ATTACH_POSITION \
	rightPosition:80 \
	bottomAttachment:ATTACH_FORM \
	bottomOffset:10 \
	activateCallback:ActivateCallback2

XtRealizeWidget $TOPLEVEL

XtMainLoop
