#! /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 the calling sequence for most of
# the X drawing commands.
#

ExposeCallback()
{
   XDrawRectangle $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
			     10 20 100 200 \
                             120 20 200 100

   XFillRectangle $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                              -foreground red -background green 20 30 80 180 

   XClearArea $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                              30 40 60 40 false

   XDrawLine $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                              -foreground red -background white 130 22 130 117

   XDrawLines $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                              140 30 140 101 \
                              150 101 150 30

   XDrawLines $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                              -CoordModePrevious -line_width 3 160 30 0 71 \
                              10 0 0 -71

   XDrawPoint $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                              180 30 180 101

   XDrawPoints $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
	190 30 190 40 190 50 190 60 190 70 190 80 190 90 190 101

   XDrawPoints $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                              -CoordModePrevious \
	                      200 30 0 10 0 10 0 10 0 10 0 10 0 10 0 10

   XDrawSegments $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                    -function clear -foreground green -background red \
                    -line_width 3 \
	            210 30 210 40 210 50 210 60 210 70 210 80 210 90 210 100

   XDrawArc $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                     -line_width 3 20 300 100 150 300 5760

   XFillArc $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                     -line_width 3 20 270 100 150 11520 5760

   XDrawString $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                     -font fixed -foreground blue -background red 200 200 \
                     "XDrawString" 

   XDrawImageString $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                     -foreground green -background red 200 250 \
                     "XDrawImageString" 

   XFillPolygon $(XtDisplay "-" $CB_WIDGET) $(XtWindow "-" $CB_WIDGET) \
                     -Convex -CoordModePrevious \
	             300 300 30 70 30 -140

   XTextWidth "-" fixed "Hi Mom"
}

ClearWindow()
{
   XClearWindow $(XtDisplay "-" $DRAWINGAREA) $(XtWindow "-" $DRAWINGAREA)
}


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

XtInitialize TOPLEVEL drawingArea DrawingArea "$0" "$@"

XtCreateManagedWidget FORM form XmForm $TOPLEVEL

XtCreateManagedWidget DRAWINGAREA drawingArea XmDrawingArea $FORM \
	topAttachment:ATTACH_FORM \
	leftAttachment:ATTACH_FORM \
	rightAttachment:ATTACH_FORM
XtAddCallback $DRAWINGAREA exposeCallback ExposeCallback

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

XtCreateManagedWidget PB pb XmPushButton $FORM \
	labelString:"Clear The Window" \
	topAttachment:ATTACH_WIDGET \
	topWidget:$SEP \
	leftAttachment:ATTACH_FORM \
	rightAttachment:ATTACH_FORM \
	bottomAttachment:ATTACH_FORM
XtAddCallback $PB activateCallback ClearWindow

XtSetValues $DRAWINGAREA \
         height:450 \
         width:450

XtRealizeWidget $TOPLEVEL

XtMainLoop
