/*************************************************************
*
* Rheostat.h.
* Public header file for Rheostat widget.
*
* Author: Joe English, joe@trystero.art.com
*
*************************************************************
*/
#ifndef RHEOSTAT_H
#define RHEOSTAT_H
extern WidgetClass rheostatWidgetClass;
typedef struct _RheostatClassRec *RheostatWidgetClass;
typedef struct _RheostatRec *RheostatWidget;
/*
* Resources:
* Angles are specified in degrees, going clockwise from straight down.
* 0 = down, 90 = left, 180 = up, 270 = right, 360 = down again.
*
* The Dial value is an integer, with minimumValue <= value <= maximumValue
*
* Setting minimumAngle=minimumValue=0 and maximumAngle=maximumValue=360
* will configure the Rheostat for specifying angles.
*
* If resizeArrow is True, then the arrow will be resized proportionally
* when the Rheostat is resized.
*
* If tickGravity is True, then clicking near a Rheostat tick will snap
* the indicator to that tick.
*
*/
#define XtNmaximumAngle "maximumAngle"
#define XtNminimumAngle "minimumAngle"
#define XtNmaximumValue "maximumValue"
#define XtNminimumValue "minimumValue"
#define XtNnumberIntervals "numberIntervals"
#define XtNresizeArrow "resizeArrow"
#define XtNtickGravity "tickGravity"
#ifndef _XtStringDefs_h_
#define XtNvalue "value"
#endif
/*
* Geometry-specifying resources (outside to inside):
*/
#define XtNouterMargin "outerMargin"
#define XtNtickLength "tickLength"
#define XtNdialThickness "dialThickness"
#define XtNinnerMargin "innerMargin"
#define XtNradius "radius"
/*
* Appearance resources:
*/
#define XtNdialColor "dialColor"
#define XtNtickColor "tickColor"
#define XtNarrowColor "arrowColor"
#define XtNtickThickness "tickThickness"
/*
* Arrow appearance:
*/
#define XtNarrowWidth "arrowWidth"
#define XtNinnerArrowLength "innerArrowLength"
#define XtNouterArrowLength "outerArrowLength"
#define XtNfillArrow "fillArrow"
#define XtNarrowThickness "arrowThickness"
/* if useShadowColors is True, then the Motif * topShadowColor and
* bottomShadowcolor resources will be used for dialColor and arrowColor.
* Only valid in Motif version of Rheostat.
*/
#define XtNuseShadowColors "useShadowColors"
/*
* Callbacks:
*/
#define XtNnotifyCallback "notify"
#define XtNsetCallback "set"
#define XtCNumberIntervals "NumberIntervals"
#define XtCGravity "Gravity"
#define XtCMinimum "Minimum"
#define XtCMaximum "Maximum"
/*
* Rheostat callback structure:
*/
typedef struct {
int reason; /* for Motif compatibility only */
XEvent *event; /* Ditto */
int value; /* current dial value */
} RheostatCallbackStruct;
/*
* Convenience callback function:
* 'closure' must be an 'int *', into which is stored the current dial value.
*/
extern void XfwfRheostatSetIntCallback(
#if NeedFunctionPrototypes
Widget, /* RheostatWidget */
XtPointer, /* int *closure */
XtPointer /* RheostatCallbackStruct *call_data */
#endif
);
extern void XfwfDrawArrow(
#if NeedFunctionPrototypes
Display *,
Drawable d,
GC gc,
int endx,
int endy, /* position of arrow tip */
int dx,
int dy, /* slope of arrow */
int outer_length, /* distance tip->base */
int inner_length, /* distance tip->inner */
int width, /* distance base->outer points */
int fill /* True=>fill arrow,False=>outline */
#endif
);
#endif /* RHEOSTAT_H */
syntax highlighted by Code2HTML, v. 0.9.1