r877: Fix files that were missing from a make dist tarball.
[cinelerra_cv.git] / guicast / bcslider.h
blobff1d2837153b2ab98c4913646a0f1dc9764f4991
1 #ifndef BCSLIDER_H
2 #define BCSLIDER_H
4 #include "bcbitmap.inc"
5 #include "bcsubwindow.h"
7 class BC_ISlider;
8 class BC_FSlider;
9 class BC_PercentageSlider;
11 class BC_Slider : public BC_SubWindow
13 public:
14 BC_Slider(int x,
15 int y,
16 int pixels,
17 int pointer_motion_range,
18 VFrame **images,
19 int show_number,
20 int vertical,
21 int use_caption);
22 virtual ~BC_Slider();
24 friend class BC_ISlider;
25 friend class BC_FSlider;
26 friend class BC_PercentageSlider;
28 virtual int handle_event() { return 0; };
30 int initialize();
31 static int get_span(int vertical);
32 int get_button_pixels();
33 virtual int value_to_pixel() { return 0; };
34 int keypress_event();
35 int cursor_enter_event();
36 int cursor_leave_event();
37 int button_press_event();
38 virtual int button_release_event();
39 int get_pointer_motion_range();
40 int cursor_motion_event();
41 int repeat_event(int64_t repeat_id);
42 int reposition_window(int x, int y, int w = -1, int h = -1);
43 int activate();
44 int deactivate();
45 virtual int increase_value() { return 0; };
46 virtual int decrease_value() { return 0; };
47 virtual char* get_caption() { return caption; };
49 private:
51 #define SLIDER_UP 0
52 #define SLIDER_HI 1
53 #define SLIDER_DN 2
54 #define SLIDER_BG_UP 0
55 #define SLIDER_BG_HI 1
56 #define SLIDER_BG_DN 2
57 #define SLIDER_IMAGES 6
59 virtual int init_selection(int cursor_x, int cursor_y) { return 0; };
60 virtual int update_selection(int cursor_x, int cursor_y) { return 0; };
61 int set_images(VFrame **images);
62 int draw_face();
63 void show_value_tooltip();
65 VFrame **images;
66 BC_Pixmap **pixmaps;
67 int show_number, vertical, pointer_motion_range, pixels;
68 int keypress_tooltip_timer;
69 int button_pixel;
70 int status;
71 int button_down;
72 int min_pixel, max_pixel;
73 int text_line, text_height;
74 int use_caption;
75 char caption[BCTEXTLEN];
76 char temp_tooltip_text[BCTEXTLEN];
77 int active;
78 int enabled;
82 class BC_ISlider : public BC_Slider
84 public:
85 BC_ISlider(int x,
86 int y,
87 int vertical,
88 int pixels,
89 int pointer_motion_range,
90 int64_t minvalue,
91 int64_t maxvalue,
92 int64_t value,
93 int use_caption = 0,
94 VFrame **data = 0,
95 int *output = 0);
97 int update(int64_t value);
98 int update(int pointer_motion_range, int64_t value, int64_t minvalue, int64_t maxvalue);
99 int64_t get_value();
100 int64_t get_length();
101 int increase_value();
102 int decrease_value();
103 virtual int handle_event();
104 virtual char* get_caption();
106 private:
107 int value_to_pixel();
108 int init_selection(int cursor_x, int cursor_y);
109 int update_selection(int cursor_x, int cursor_y);
110 int64_t minvalue, maxvalue, value;
111 int *output;
114 class BC_FSlider : public BC_Slider
116 public:
117 BC_FSlider(int x,
118 int y,
119 int vertical,
120 int pixels,
121 int pointer_motion_range,
122 float minvalue,
123 float maxvalue,
124 float value,
125 int use_caption = 0,
126 VFrame **data = 0);
128 friend class BC_PercentageSlider;
130 int update(float value);
131 int update(int pointer_motion_range, float value, float minvalue, float maxvalue);
132 float get_value();
133 float get_length();
134 virtual int increase_value();
135 virtual int decrease_value();
136 virtual char* get_caption();
137 void set_precision(float value);
139 private:
140 int value_to_pixel();
141 int init_selection(int cursor_x, int cursor_y);
142 int update_selection(int cursor_x, int cursor_y);
143 float minvalue, maxvalue, value;
144 float precision;
147 class BC_PercentageSlider : public BC_FSlider
149 public:
150 BC_PercentageSlider(int x,
151 int y,
152 int vertical,
153 int pixels,
154 int pointer_motion_range,
155 float minvalue,
156 float maxvalue,
157 float value,
158 int use_caption = 0,
159 VFrame **data = 0);
161 virtual int increase_value();
162 virtual int decrease_value();
163 char* get_caption();
164 private:
168 #endif