inter-view tweaks, add clip preview, fix for dupl proxy vicon refs, fix track drag...
[goodguy/cinelerra.git] / cinelerra-5.1 / guicast / vicon.h
index bab38462b643b284aed7059b0e642e2e6bf510aa..dc4963b99447ac801562084fd12e9ebea9b9d6bb 100644 (file)
@@ -9,16 +9,17 @@
 #include "vicon.inc"
 #include "vframe.h"
 
-typedef void VIconDrawVFrame(BC_WindowBase *wdw, VFrame *frame);
-
 class ViewPopup : public BC_Popup {
 public:
        VIconThread *vt;
-       int keypress_event();
-       int button_press_event();
-       int cursor_motion_event();
-
-       ViewPopup(VIconThread *vt, VFrame *frame, int x, int y, int w, int h);
+       virtual int keypress_event();
+       virtual int button_press_event() { return 0; }
+       virtual int button_release_event() { return 0; }
+       virtual int cursor_motion_event() { return 0; }
+       virtual void draw_vframe(VFrame *frame);
+       int zoom_scale(int dir);
+
+       ViewPopup(VIconThread *vt, int x, int y, int w, int h);
        ~ViewPopup();
 };
 
@@ -39,7 +40,7 @@ public:
 class VIcon
 {
 public:
-       int vw, vh, in_use, hidden;
+       int w, h, in_use, hidden;
        ArrayList<VIFrame *> images;
         int64_t seq_no;
         double cycle_start, age, frame_rate;
@@ -59,8 +60,6 @@ public:
        virtual void load_audio() {}
        virtual void start_audio() {}
        virtual void stop_audio() {}
-       virtual int popup_button_press(int x, int y) { return 0; }
-       virtual int popup_cursor_motion(int x, int y) { return 0; }
 
        void add_image(VFrame *frm, int ww, int hh, int vcmdl);
        void draw_vframe(VIconThread *vt, BC_WindowBase *wdw, int x, int y);
@@ -79,7 +78,7 @@ public:
        Condition *draw_lock;
        ViewPopup *view_win;
        VIcon *viewing, *vicon;
-       int view_w, view_h;
+       int vw, vh, view_w, view_h;
        int draw_x0, draw_y0;
        int draw_x1, draw_y1;
        int img_dirty, win_dirty;
@@ -97,22 +96,24 @@ public:
        void draw_images();
        void start_drawing();
        void stop_drawing();
+       void stop_viewing();
        void reset_images();
        void remove_vicon(int i);
        int keypress_event(int key);
+       int cursor_inside(int x, int y);
        void set_drawing_area(int x0, int y0, int x1, int y1);
-       void set_view_popup(VIcon *vicon, VIconDrawVFrame *draw_vfrm=0);
+       void set_view_popup(VIcon *vicon);
        void close_view_popup();
        void hide_vicons(int v=1);
-       ViewPopup *new_view_window(VFrame *frame);
+       virtual ViewPopup *new_view_window();
 
        virtual bool visible(VIcon *vicon, int x, int y);
        virtual void drawing_started() {}
        virtual void drawing_stopped() {}
-       static VIconDrawVFrame draw_vframe;
-       VIconDrawVFrame *draw_vfrm;
 
-       VIconThread(BC_WindowBase *wdw, int vw=4*VICON_WIDTH, int vh=4*VICON_HEIGHT);
+       VIconThread(BC_WindowBase *wdw,
+               int vw=VICON_WIDTH, int vh=VICON_HEIGHT,
+               int view_w=4*VICON_WIDTH, int view_h=4*VICON_HEIGHT);
        ~VIconThread();
 };