
Scale Widget

Header file 		Scale.h
Class			scaleWidgetClass
Class Name		Scale
Superclass		Simple

The Scale widget is an immutable image displayed within a rectangular
region of the screen.  When the widget is selected, it is highlighted, 
and an application callback routine is invoked.  When the
widget is resized the image can be autoscaled to fit new size of the 
widget window.  The widget can also cut and paste its contents.

When creating a Scale widget instance, the following resources are
retreived from the argument list or from the resource database:

All the Simple Widget resources plus...
-------------------------------------------------------------------------------
 Name                Cass               Type            Default Value
-------------------------------------------------------------------------------
 aspectRatio         AspectRatio        Float           1.0
 autoscale           Autoscale          Boolean         True
 bufferSize          BufferSize         Cardinal        1024
 foreground          Foreground         Pixel           XtDefaultForeground
 gravity             Gravity            XtGravity       ForgetGravity
 image               Image              XImage*         NULL
 internalHeight      Height             Dimension       2
 internalWidth       Width              Dimension       2
 pasteBuffer         PasteBuffer        Boolean         False
 precision           Precision          Float           0.001
 proportional        Proportional       Boolean         True
 resize              Resize             Boolean         True
 scaleX              ScaleFactor        Float           DefaultScaleValue
 scaleY              ScaleFactor        Float           DefaultScaleValue
 exponent            Exponent           integer         -3
-------------------------------------------------------------------------------

 aspectRatio	This resource specifies the aspect ratio of the scaled image
		in the x / y * aspectRatio = 1 form.  It is effective within
		the precision resource only if proportional resource is set 
		to true.  AspectRatio resource can be any positive number 
		greater than zero.

 autoscale	If this resource is set to True then the image will be
		autoscaled to fit the window size within internal width
		and internal height resource values.  If the resource is
		False, the widget will only reposition the image
		according to the gravity resource value.

 bufferSize	This resource specifies the buffer size in XRectangle's for
		buffering the XFillRectangle calls.  It is effective only 
		for XYBitmap image type.

 background	This resource has the same meaning as for the Simple widget.
		However, it is worth mentioning that if the most frequent
		pixel value in the XYPixmap or ZPixmap image is specified
		as backgroud, the scaling process can be speeded up noticably.

 foreground	The color used to paint the image if in XYBitmap format.
		If the image is XYPixmap or ZPixmap format, the foreground
		resource has no effect.

 gravity	This resource will determine where to put the image if it does 
		not fit the window size minus internal width and height.
		The widget will try to preserve gravity rather than internal
		width and height resources.

 image		This is the image to be displayed in the widget window.
		If no image is desired, the NULL value can be passed.  
		The passed image is copied and set to the resource value.
		Applications should destroy the passed image argument
		if they do not intend to use it at some later time.

 internalHeight	
 internalWidth	These resources specify the minimum distance from the boarder 
		of the widget window to be maintanied when manipulating the 
		image.  If image is too big or small to satisfy given 
		conditions, the	widget will position the image to preserve 
		gravity rather than internalWidth or internalHeight.

 pasteBuffer	If this resource is true then the widget owns the paste
		selection buffer.  This resource can only be queried.

 precision	This resource specifies the precision of the scale factors
		when scaling the image.  The precision resource can be any 
		positive number greater than zero. (For example, if precision
		is 1.0 then the image will be scaled only by integer values.)

 proportional	If this resource is set to true it will make sure that the 
                image proportions, as specified by aspectRatio resource,
                are being kept whenever it is scaled.  
		
 resize		If this resource is true the widget will try to resize when
		addopting a new image thus preserveing the scale values.
		If it is false the scale values will not be preserved unless
		the image can fit in the current window size with the same
		scale values.

 scaleX
 scaleY		These resources specify the scaling values for the widget
		image.  They will be floored to satisfy precision resource
		values.  If uniform resource is true the scale values will
		be only integers.  These resources can be any positive number
		greater than zero.

 shiftFactor	...
