/**********************************************************************
This file is part of Crack dot Com's free source code release of
Golgotha.
for
information about compiling & licensing issues visit this URL
If that doesn't help, contact Jonathan Clark at
golgotha_source@usa.net (Subject should have "GOLG" in it)
***********************************************************************/
#ifndef I4_SLIDER_HH
#define I4_SLIDER_HH
#include "time/timedev.hh"
class i4_graphical_style_class;
class i4_event_handler_class;
#include "device/event.hh"
#include "window/window.hh"
class i4_slider_event : public i4_object_message_event_class
{
public:
w32 x, divisor;
i4_slider_event(void *object, w32 x, w32 divisor)
: i4_object_message_event_class(object), x(x), divisor(divisor) {}
i4_event *copy() { return new i4_slider_event(object,x,divisor); }
char *name() { return "slide event"; }
};
class i4_slider_class : public i4_window_class
{
i4_graphical_style_class *style;
sw32 off, lx,ly;
i4_bool grab, active, need_cancel;
sw32 bw, milli_delay; // button width
i4_time_device_class::id t_event;
i4_event_handler_class *notify;
void set_off_from_mouse();
void send_change();
public:
void set_notify(i4_event_handler_class *n) { notify=n; }
i4_slider_class(sw32 width,
sw32 initial_start,
i4_event_handler_class *notify,
w32 milli_delay,
i4_graphical_style_class *style);
~i4_slider_class();
void draw(i4_draw_context_class &context);
void receive_event(i4_event *ev);
char *name() { return "slider"; }
};
#endif