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 virtual void set_log_floatincrement(int value) {};
00029
00030 private:
00031 int draw_face();
00032
00033 BC_Pixmap *images[4];
00034 int status;
00035 int64_t repeat_count;
00036 VFrame **data;
00037 };
00038
00039 class BC_ITumbler : public BC_Tumbler
00040 {
00041 public:
00042 BC_ITumbler(BC_TextBox *textbox, int64_t min, int64_t max, int x, int y);
00043 virtual ~BC_ITumbler();
00044
00045 int handle_up_event();
00046 int handle_down_event();
00047 void set_increment(float value);
00048 void set_boundaries(int64_t min, int64_t max);
00049
00050 int64_t min, max;
00051 int64_t increment;
00052 BC_TextBox *textbox;
00053 };
00054
00055 class BC_FTumbler : public BC_Tumbler
00056 {
00057 public:
00058 BC_FTumbler(BC_TextBox *textbox, float min, float max, int x, int y);
00059 virtual ~BC_FTumbler();
00060
00061 int handle_up_event();
00062 int handle_down_event();
00063 void set_boundaries(float min, float max);
00064 void set_increment(float value);
00065 void set_log_floatincrement(int value);
00066
00067 float min, max;
00068 float increment;
00069 int log_floatincrement;
00070 BC_TextBox *textbox;
00071 };
00072
00073 #endif