configure.ac add with-cuda/nv, update cakewalk theme, add cuda/plugins=mandel+nbody...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / cwindowtool.h
index 4691fc0781b41a75fac87e57468bfb6194269fdc..e6922e4b4f295d117b64d745c134cc6df1494052 100644 (file)
@@ -93,8 +93,10 @@ public:
 class CWindowCoord : public BC_TumbleTextBox
 {
 public:
-       CWindowCoord(CWindowToolGUI *gui, int x, int y, float value, int logincrement);
-       CWindowCoord(CWindowToolGUI *gui, int x, int y, int value);
+       CWindowCoord(CWindowToolGUI *gui, int x, int y,
+                       float value, int logincrement);
+       CWindowCoord(CWindowToolGUI *gui, int x, int y,
+                       int value);
 
 // Calls the window's handle_event
        int handle_event();
@@ -105,7 +107,8 @@ public:
 class CWindowCropOK : public BC_GenericButton
 {
 public:
-       CWindowCropOK(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+       CWindowCropOK(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
 // Perform the cropping operation
        int handle_event();
        int keypress_event();
@@ -135,20 +138,71 @@ public:
 class CWindowMaskName : public BC_PopupTextBox
 {
 public:
-       CWindowMaskName(MWindow *mwindow, CWindowToolGUI *gui, int x, int y, const char *text);
+       CWindowMaskName(MWindow *mwindow, CWindowMaskGUI *gui,
+                       int x, int y, const char *text);
        ~CWindowMaskName();
        MWindow *mwindow;
-       CWindowToolGUI *gui;
+       CWindowMaskGUI *gui;
        CWindowMaskItems mask_items;
 
        int handle_event();
        void update_items(MaskAuto *keyframe);
 };
 
+class CWindowMaskDelMask : public BC_GenericButton
+{
+public:
+       CWindowMaskDelMask(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
+       int handle_event();
+       MWindow *mwindow;
+       CWindowToolGUI *gui;
+};
+
+class CWindowMaskClrMask : public BC_Button
+{
+public:
+       CWindowMaskClrMask(MWindow *mwindow, CWindowMaskGUI *gui,
+                       int x, int y);
+       ~CWindowMaskClrMask();
+       static int calculate_w(MWindow *mwindow);
+       int handle_event();
+       MWindow *mwindow;
+       CWindowMaskGUI *gui;
+};
+
+class CWindowMaskButton : public BC_CheckBox
+{
+public:
+       CWindowMaskButton(MWindow *mwindow, CWindowMaskGUI *gui,
+                        int x, int y, int no, int v);
+       ~CWindowMaskButton();
+
+       int handle_event();
+       MWindow *mwindow;
+       CWindowMaskGUI *gui;
+       int no;
+};
+
+class CWindowMaskThumbler : public BC_Tumbler
+{
+public:
+       CWindowMaskThumbler(MWindow *mwindow, CWindowMaskGUI *gui,
+                       int x, int y);
+       ~CWindowMaskThumbler();
+       int handle_up_event();
+       int handle_down_event();
+       int do_event(int dir);
+
+       MWindow *mwindow;
+       CWindowMaskGUI *gui;
+};
+
 class CWindowMaskFade : public BC_TumbleTextBox
 {
 public:
-       CWindowMaskFade(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+       CWindowMaskFade(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
        ~CWindowMaskFade();
        int update(float v);
        int update_value(float v);
@@ -169,43 +223,60 @@ public:
        MWindow *mwindow;
        CWindowToolGUI *gui;
        int stick;
+       float last_v;
        Timer *timer;
 };
 
-class CWindowMaskMode : public BC_Toggle
+class CWindowMaskGangFader : public BC_Toggle
 {
 public:
-       CWindowMaskMode(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
-       ~CWindowMaskMode();
+       CWindowMaskGangFader(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
+       ~CWindowMaskGangFader();
        int handle_event();
        MWindow *mwindow;
        CWindowToolGUI *gui;
 };
 
-class CWindowMaskDelMask : public BC_GenericButton
+class CWindowMaskAffectedPoint : public BC_TumbleTextBox
 {
 public:
-       CWindowMaskDelMask(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+       CWindowMaskAffectedPoint(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
+       ~CWindowMaskAffectedPoint();
        int handle_event();
        MWindow *mwindow;
        CWindowToolGUI *gui;
 };
 
-class CWindowMaskAffectedPoint : public BC_TumbleTextBox
+class CWindowMaskFocus : public BC_CheckBox
 {
 public:
-       CWindowMaskAffectedPoint(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
-       ~CWindowMaskAffectedPoint();
+       CWindowMaskFocus(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
+       ~CWindowMaskFocus();
        int handle_event();
        MWindow *mwindow;
        CWindowToolGUI *gui;
 };
 
-class CWindowMaskFocus : public BC_CheckBox
+class CWindowMaskDrawMarkers : public BC_CheckBox
 {
 public:
-       CWindowMaskFocus(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
-       ~CWindowMaskFocus();
+       CWindowMaskDrawMarkers(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
+       ~CWindowMaskDrawMarkers();
+       int handle_event();
+       MWindow *mwindow;
+       CWindowToolGUI *gui;
+};
+
+class CWindowMaskDrawBoundary : public BC_CheckBox
+{
+public:
+       CWindowMaskDrawBoundary(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
+       ~CWindowMaskDrawBoundary();
        int handle_event();
        MWindow *mwindow;
        CWindowToolGUI *gui;
@@ -214,7 +285,8 @@ public:
 class CWindowMaskDelPoint : public BC_GenericButton
 {
 public:
-       CWindowMaskDelPoint(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+       CWindowMaskDelPoint(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
        int handle_event();
        int keypress_event();
        MWindow *mwindow;
@@ -224,7 +296,8 @@ public:
 class CWindowMaskFeather : public BC_TumbleTextBox
 {
 public:
-       CWindowMaskFeather(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+       CWindowMaskFeather(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
        ~CWindowMaskFeather();
        int update(float v);
        int update_value(float v);
@@ -244,33 +317,27 @@ public:
        char *get_caption() { return 0; }
        MWindow *mwindow;
        CWindowToolGUI *gui;
+       int stick;
+       float last_v;
+       Timer *timer;
 };
 
-class CWindowMaskClrMask : public BC_Button
-{
-public:
-       CWindowMaskClrMask(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y);
-       ~CWindowMaskClrMask();
-       static int calculate_w(MWindow *mwindow);
-       int handle_event();
-       MWindow *mwindow;
-       CWindowMaskGUI *gui;
-};
-
-class CWindowMaskClrFeather : public BC_Button
+class CWindowMaskGangFeather : public BC_Toggle
 {
 public:
-       CWindowMaskClrFeather(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y);
-       ~CWindowMaskClrFeather();
+       CWindowMaskGangFeather(MWindow *mwindow, CWindowToolGUI *gui,
+                       int x, int y);
+       ~CWindowMaskGangFeather();
        int handle_event();
        MWindow *mwindow;
-       CWindowMaskGUI *gui;
+       CWindowToolGUI *gui;
 };
 
 class CWindowMaskBeforePlugins : public BC_CheckBox
 {
 public:
-       CWindowMaskBeforePlugins(CWindowToolGUI *gui, int x, int y);
+       CWindowMaskBeforePlugins(CWindowToolGUI *gui,
+                       int x, int y);
        int handle_event();
        CWindowToolGUI *gui;
 };
@@ -278,7 +345,8 @@ public:
 class CWindowDisableOpenGLMasking : public BC_CheckBox
 {
 public:
-       CWindowDisableOpenGLMasking(CWindowToolGUI *gui, int x, int y);
+       CWindowDisableOpenGLMasking(CWindowToolGUI *gui,
+                       int x, int y);
        int handle_event();
        CWindowToolGUI *gui;
 };
@@ -291,25 +359,34 @@ public:
        void create_objects();
        void update();
        void set_focused(int v, float cx, float cy);
+       void update_buttons(MaskAuto *keyframe, int k);
        void handle_event();
        void get_keyframe(Track* &track, MaskAutos* &autos, MaskAuto* &keyframe,
                SubMask* &mask, MaskPoint* &point, int create_it);
        void update_preview();
 
        CWindowMaskName *name;
-       CWindowMaskClrMask *clr_mask;
+       CWindowMaskButton *mask_buttons[SUBMASKS];
+       CWindowMaskThumbler *mask_thumbler;
+       BC_Title *mask_blabels[SUBMASKS];
        CWindowMaskDelMask *del_mask;
+       CWindowMaskClrMask *clr_mask;
        CWindowMaskFade *fade;
        CWindowMaskFadeSlider *fade_slider;
-       CWindowMaskMode *mode;
+       CWindowMaskGangFader *gang_fader;
        CWindowMaskAffectedPoint *active_point;
        CWindowMaskDelPoint *del_point;
        CWindowCoord *x, *y;
        CWindowMaskFocus *focus;
        int focused;
+       CWindowMaskDrawMarkers *draw_markers;
+       int markers;
+       CWindowMaskDrawBoundary *draw_boundary;
+       int boundary;
        CWindowCoord *focus_x, *focus_y;
        CWindowMaskFeather *feather;
        CWindowMaskFeatherSlider *feather_slider;
+       CWindowMaskGangFeather *gang_feather;
        CWindowMaskBeforePlugins *apply_before_plugins;
        CWindowDisableOpenGLMasking *disable_opengl_masking;
 };
@@ -370,7 +447,8 @@ private:
 class CWindowCameraLeft : public BC_Button
 {
 public:
-       CWindowCameraLeft(MWindow *mwindow, CWindowCameraGUI *gui, int x, int y);
+       CWindowCameraLeft(MWindow *mwindow, CWindowCameraGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowCameraGUI *gui;
@@ -379,7 +457,8 @@ public:
 class CWindowCameraCenter : public BC_Button
 {
 public:
-       CWindowCameraCenter(MWindow *mwindow, CWindowCameraGUI *gui, int x, int y);
+       CWindowCameraCenter(MWindow *mwindow, CWindowCameraGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowCameraGUI *gui;
@@ -388,7 +467,8 @@ public:
 class CWindowCameraRight : public BC_Button
 {
 public:
-       CWindowCameraRight(MWindow *mwindow, CWindowCameraGUI *gui, int x, int y);
+       CWindowCameraRight(MWindow *mwindow, CWindowCameraGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowCameraGUI *gui;
@@ -397,7 +477,8 @@ public:
 class CWindowCameraTop : public BC_Button
 {
 public:
-       CWindowCameraTop(MWindow *mwindow, CWindowCameraGUI *gui, int x, int y);
+       CWindowCameraTop(MWindow *mwindow, CWindowCameraGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowCameraGUI *gui;
@@ -406,7 +487,8 @@ public:
 class CWindowCameraMiddle : public BC_Button
 {
 public:
-       CWindowCameraMiddle(MWindow *mwindow, CWindowCameraGUI *gui, int x, int y);
+       CWindowCameraMiddle(MWindow *mwindow, CWindowCameraGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowCameraGUI *gui;
@@ -415,7 +497,8 @@ public:
 class CWindowCameraBottom : public BC_Button
 {
 public:
-       CWindowCameraBottom(MWindow *mwindow, CWindowCameraGUI *gui, int x, int y);
+       CWindowCameraBottom(MWindow *mwindow, CWindowCameraGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowCameraGUI *gui;
@@ -440,7 +523,8 @@ private:
 class CWindowProjectorLeft : public BC_Button
 {
 public:
-       CWindowProjectorLeft(MWindow *mwindow, CWindowProjectorGUI *gui, int x, int y);
+       CWindowProjectorLeft(MWindow *mwindow, CWindowProjectorGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowProjectorGUI *gui;
@@ -449,7 +533,8 @@ public:
 class CWindowProjectorCenter : public BC_Button
 {
 public:
-       CWindowProjectorCenter(MWindow *mwindow, CWindowProjectorGUI *gui, int x, int y);
+       CWindowProjectorCenter(MWindow *mwindow, CWindowProjectorGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowProjectorGUI *gui;
@@ -458,7 +543,8 @@ public:
 class CWindowProjectorRight : public BC_Button
 {
 public:
-       CWindowProjectorRight(MWindow *mwindow, CWindowProjectorGUI *gui, int x, int y);
+       CWindowProjectorRight(MWindow *mwindow, CWindowProjectorGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowProjectorGUI *gui;
@@ -467,7 +553,8 @@ public:
 class CWindowProjectorTop : public BC_Button
 {
 public:
-       CWindowProjectorTop(MWindow *mwindow, CWindowProjectorGUI *gui, int x, int y);
+       CWindowProjectorTop(MWindow *mwindow, CWindowProjectorGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowProjectorGUI *gui;
@@ -476,7 +563,8 @@ public:
 class CWindowProjectorMiddle : public BC_Button
 {
 public:
-       CWindowProjectorMiddle(MWindow *mwindow, CWindowProjectorGUI *gui, int x, int y);
+       CWindowProjectorMiddle(MWindow *mwindow, CWindowProjectorGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowProjectorGUI *gui;
@@ -485,7 +573,8 @@ public:
 class CWindowProjectorBottom : public BC_Button
 {
 public:
-       CWindowProjectorBottom(MWindow *mwindow, CWindowProjectorGUI *gui, int x, int y);
+       CWindowProjectorBottom(MWindow *mwindow, CWindowProjectorGUI *gui,
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowProjectorGUI *gui;