/* $Id: ScrollbarP.h,v 1.3 1997/04/24 12:59:34 archer Exp $
 *	SCROLLBARP.H - Private structures needed by Scrollbar
 *
 * There are two scrollbars in fact: The vertical scrollbar, and the
 * horizontal one.
 */
#ifndef _widget_scrollbarp_h_included
#define _widget_scrollbarp_h_included
#include <Widget/WidgetsP.h>
#include <Widget/Scrollbar.h>
#include <Widget/ArrowP.h>
#include <Widget/Signal.h>


/**
 ** Private types
 **/
typedef long	(*x11__callong)(X11_widget,long);


typedef struct {
	x11__core		core;
/*
 * Sub-objects
 */
	X11_widget		lift;
	X11_widget		minus,
				plus;
	X11_timer		timer;
/*
 * Visual appearance
 */
	unsigned int		lift_area_w;
	int			lift_area_x;
	boolean			down_pageup,
				down_pagedown,
				down_plus,
				down_minus,
				down_lift;
/*
 * Callbacks
 */
	x11__callong		callback;
	X11_widget		for_widget;
/*
 * Boundaries
 */
	long			max, max_w;
	long			value;
	int			width;
	int			arrow;
	int			modulo;
} x11__scrollbar;
#define W_SCROLLBAR	((x11__scrollbar *)wdg)


/**
 ** Prototypes
 **/
extern void	x11__scrollbar_accelerators(x11__scrollbar *);
extern void	x11__scrollbar_get_values(x11__scrollbar *,long *,long *,int *);
extern void	x11__scrollbar_set_arrow(X11_widget,int,int);
extern void	x11__scrollbar_set_bounds(X11_widget,long,int);
extern void	x11__scrollbar_set_value(x11__scrollbar *,long);
extern void	x11__scrollbar_moveto(x11__scrollbar *,long);
extern void	x11__scrollbar_call(X11_widget,X11_widget,x11__callong);


#endif /*_widget_scrollbarp_h_included*/
