PROGRAM(spin_button);
// A spinn button.
// IMG: GTK.Spin_button( GTK.Adjustment(2.0,0.0,10.0,1.0,1.0,1.0),1.0,4  )->set_usize(60,20)
// IMG: GTK.Spin_button( GTK.Adjustment(1.0,10.0,0.00001,0.0001,0.001),1.0,4  )->set_digits(2)->set_numeric(1)->set_usize(60,20)
// IMG: GTK.Spin_button( GTK.Adjustment(4.0,0.0,10.0,1.0,1.0,1.0),1.0,4  )->set_digits(0)->set_usize(60,20)
INHERIT(entry);
COMPLEX_FUNCTION(create, adjustment, float, int);
NAME_ARGS(range,climb_rate,precision);
COMPLEX_FUNCTION(configure, adjustment, float, int);
NAME_ARGS(range,climb_rate,precision);
// Adjustment (with the lower/upper/increse values), climb_rate and digits
COMPLEX_FUNCTION(set_adjustment, adjustment);
NAME_ARGS(range);
// Set a new adjustment.
COMPLEX_FUNCTION(set_digits, int);
NAME_ARGS(precision);
// Set the number of digits to show to the user.
float COMPLEX_FUNCTION(get_value_as_float);
int COMPLEX_FUNCTION(get_value_as_int);

COMPLEX_FUNCTION(set_value, float);
NAME_ARGS(to);
// Set the value.
COMPLEX_FUNCTION(set_update_policy, int);
NAME_ARGS(policy);
// One of CONST(GTK_POLICY)
COMPLEX_FUNCTION(set_numeric, int);
NAME_ARGS(numericp);
// If true, it is a numeric value
COMPLEX_FUNCTION(spin, int, float);
NAME_ARGS(direction,increment);
// Arguments: direction and value. Move the spin button value steps in
// 'direction' (-1 or 1)
COMPLEX_FUNCTION(set_wrap, int);
NAME_ARGS(wrapp);
// If true, the spin button will wrap.

COMPLEX_FUNCTION(set_shadow_type,int);
COMPLEX_FUNCTION(set_snap_to_ticks,int);
COMPLEX_FUNCTION(update);


CLASSMEMBER( climb_rate, float);
CLASSMEMBER( timer_step, float);
CLASSMEMBER( update_policy, int);

CLASSMEMBER( in_child, int);
CLASSMEMBER( click_child, int);
CLASSMEMBER( digits, int);
CLASSMEMBER( numeric, int);
CLASSMEMBER( wrap, int);
CLASSMEMBER( snap_to_ticks, int);
