add gang points to mask_gui, add missing projector xform to centroid marker, fix...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / cwindowtool.h
index 6a9c0f77b59a82bc25135bd8e464ca682f826182..5e290b1370a69745f4ee72ea3cc6a1e3eef32c2f 100644 (file)
 #include "maskautos.inc"
 #include "mwindow.inc"
 
+enum {
+       MASK_SHAPE_SQUARE,
+       MASK_SHAPE_CIRCLE,
+       MASK_SHAPE_TRIANGLE,
+       MASK_SHAPE_OVAL,
+};
+enum {
+       MASK_SCALE_X,
+       MASK_SCALE_Y,
+       MASK_SCALE_XY,
+};
 
 // This common thread supports all the tool GUI's.
 class CWindowTool : public Thread
@@ -189,11 +200,11 @@ public:
        void update_items(MaskAuto *keyframe);
 };
 
-class CWindowMaskUnclear : public BC_GenericButton
+class CWindowMaskUnclear : public BC_Button
 {
 public:
        CWindowMaskUnclear(MWindow *mwindow, CWindowMaskGUI *gui,
-                       int x, int y, int w);
+                       int x, int y);
        int handle_event();
        MWindow *mwindow;
        CWindowMaskGUI *gui;
@@ -323,6 +334,17 @@ public:
        CWindowMaskGUI *gui;
 };
 
+class CWindowMaskGangPoint : public BC_Toggle
+{
+public:
+       CWindowMaskGangPoint(MWindow *mwindow, CWindowMaskGUI *gui,
+                       int x, int y);
+       ~CWindowMaskGangPoint();
+       int handle_event();
+       MWindow *mwindow;
+       CWindowMaskGUI *gui;
+};
+
 class CWindowMaskSmoothButton : public BC_Button
 {
 public:
@@ -463,7 +485,20 @@ public:
        CWindowMaskGUI *gui;
 };
 
-class CWindowMaskLoad : public BC_GenericButton
+class CWindowMaskLoadList : public BC_ListBox
+{
+public:
+       CWindowMaskLoadList(MWindow *mwindow, CWindowMaskGUI *gui);
+       ~CWindowMaskLoadList();
+       void create_objects();
+       int handle_event();
+
+       MWindow *mwindow;
+       CWindowMaskGUI *gui;
+       CWindowMaskItems shape_items;
+};
+
+class CWindowMaskLoad : public BC_Button
 {
 public:
        CWindowMaskLoad(MWindow *mwindow, CWindowMaskGUI *gui,
@@ -474,7 +509,7 @@ public:
        CWindowMaskGUI *gui;
 };
 
-class CWindowMaskSave : public BC_GenericButton
+class CWindowMaskSave : public BC_Button
 {
 public:
        CWindowMaskSave(MWindow *mwindow, CWindowMaskGUI *gui,
@@ -527,7 +562,7 @@ public:
        CWindowMaskItems mask_items;
 };
 
-class CWindowMaskDelete : public BC_GenericButton
+class CWindowMaskDelete : public BC_Button
 {
 public:
        CWindowMaskDelete(MWindow *mwindow, CWindowMaskGUI *gui,
@@ -538,7 +573,7 @@ public:
        CWindowMaskGUI *gui;
 };
 
-class CWindowMaskCenter : public BC_GenericButton
+class CWindowMaskCenter : public BC_Button
 {
 public:
        CWindowMaskCenter(MWindow *mwindow, CWindowMaskGUI *gui,
@@ -549,7 +584,7 @@ public:
        CWindowMaskGUI *gui;
 };
 
-class CWindowMaskNormal : public BC_GenericButton
+class CWindowMaskNormal : public BC_Button
 {
 public:
        CWindowMaskNormal(MWindow *mwindow, CWindowMaskGUI *gui,
@@ -560,21 +595,18 @@ public:
        CWindowMaskGUI *gui;
 };
 
-class CWindowMaskShape : public BC_ListBox
+class CWindowMaskShape : public BC_Button
 {
 public:
-       enum { MASK_SHAPE_SQUARE, MASK_SHAPE_CIRCLE,
-               MASK_SHAPE_TRIANGLE, MASK_SHAPE_OVAL,
-               MASK_SHAPE_BUILTIN };
-       CWindowMaskShape(MWindow *mwindow, CWindowMaskGUI *gui);
+       CWindowMaskShape(MWindow *mwindow, CWindowMaskGUI *gui,
+               const char *images, int shape, int x, int y, const char *tip);
        ~CWindowMaskShape();
-       void create_objects();
        void builtin_shape(int i, SubMask *sub_mask);
-       void load_shape(int i, SubMask *sub_mask);
        int handle_event();
 
        MWindow *mwindow;
        CWindowMaskGUI *gui;
+       int shape;
        CWindowMaskItems shape_items;
 };
 
@@ -620,9 +652,13 @@ public:
        CWindowMaskDelMask *mask_del;
        CWindowMaskUnclear *mask_unclr;
        CWindowMaskClrMask *mask_clr;
-       CWindowMaskShape *mask_shape;
-       CWindowMaskSave *mask_save;
+       CWindowMaskShape *mask_shape_sqr;
+       CWindowMaskShape *mask_shape_crc;
+       CWindowMaskShape *mask_shape_tri;
+       CWindowMaskShape *mask_shape_ovl;
+       CWindowMaskLoadList *mask_load_list;
        CWindowMaskLoad *mask_load;
+       CWindowMaskSave *mask_save;
        CWindowMaskDelete *mask_delete;
        CWindowMaskPresetDialog *preset_dialog;
        CWindowMaskCenter *mask_center;
@@ -632,6 +668,7 @@ public:
        CWindowMaskGangFader *gang_fader;
        CWindowMaskAffectedPoint *active_point;
        CWindowMaskDelPoint *del_point;
+       CWindowMaskGangPoint *gang_point;
        CWindowMaskSmoothButton *mask_pnt_linear, *mask_pnt_smooth;
        CWindowMaskSmoothButton *mask_crv_linear, *mask_crv_smooth;
        CWindowMaskSmoothButton *mask_all_linear, *mask_all_smooth;