00001 #ifndef BCTUMBLE_H
00002 #define BCTUMBLE_H
00003
00004 #include "bcsubwindow.h"
00005
00006 class BC_Tumbler : public BC_SubWindow
00007 {
00008 public:
00009 BC_Tumbler(int x, int y, VFrame **data = 0);
00010 virtual ~BC_Tumbler();
00011
00012 virtual int handle_up_event() { return 0; };
00013 virtual int handle_down_event() { return 0; };
00014 int repeat_event(int64_t repeat_id);
00015
00016 int initialize();
00017 int set_images(VFrame **data);
00018 int cursor_enter_event();
00019 int cursor_leave_event();
00020 int button_press_event();
00021 int button_release_event();
00022 int cursor_motion_event();
00023 int update_bitmaps(VFrame **data);
00024 int reposition_window(int x, int y, int w=-1, int h=-1);
00025 virtual void set_boundaries(int64_t min, int64_t max) {};
00026 virtual void set_boundaries(float min, float max) {};
00027 virtual void set_increment(float value) {};
00028
00029 private:
00030 int draw_face();
00031
00032 BC_Pixmap *images[4];
00033 int status;
00034 int64_t repeat_count;
00035 VFrame **data;
00036 };
00037
00038 class BC_ITumbler : public BC_Tumbler
00039 {
00040 public:
00041 BC_ITumbler(BC_TextBox *textbox, int64_t min, int64_t max, int x, int y);
00042 virtual ~BC_ITumbler();
00043
00044 int handle_up_event();
00045 int handle_down_event();
00046 void set_increment(float value);
00047 void set_boundaries(int64_t min, int64_t max);
00048
00049 int64_t min, max;
00050 int64_t increment;
00051 BC_TextBox *textbox;
00052 };
00053
00054 class BC_FTumbler : public BC_Tumbler
00055 {
00056 public:
00057 BC_FTumbler(BC_TextBox *textbox, float min, float max, int x, int y);
00058 virtual ~BC_FTumbler();
00059
00060 int handle_up_event();
00061 int handle_down_event();
00062 void set_boundaries(float min, float max);
00063 void set_increment(float value);
00064
00065 float min, max;
00066 float increment;
00067 BC_TextBox *textbox;
00068 };
00069
00070 #endif