Credit Andrew - improve in-tree documentation
[goodguy/cinelerra.git] / cinelerra / dragcheckbox.h
1 #ifndef __DRAGCHECKBOX_H__
2 #define __DRAGCHECKBOX_H__
3
4 #include "bctoggle.h"
5 #include "mwindow.inc"
6 #include "track.inc"
7
8 class DragCheckBox : public BC_CheckBox
9 {
10 public:
11         DragCheckBox(MWindow *mwindow, int x, int y, const char *text, int *value,
12                 float drag_x, float drag_y, float drag_w, float drag_h);
13         ~DragCheckBox();
14         virtual Track *get_drag_track() = 0;
15         virtual int64_t get_drag_position() = 0;
16         virtual void update_gui() { return; };
17         void create_objects();
18         void bound();
19         static void draw_boundary(VFrame *out, int x, int y, int w, int h);
20
21         int check_pending();
22         int drag_activate();
23         void drag_deactivate();
24
25         int handle_event();
26         int grab_event(XEvent *event);
27         
28         MWindow *mwindow;
29         int grabbed, dragging, pending;
30         float drag_x, drag_y;
31         float drag_w, drag_h;
32         float drag_dx, drag_dy;
33 };
34
35 #endif
36