minor changes; mostly for new Context Help feature
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / cwindowtool.h
index 00e485e3c4cde4b90bda439e79d3a10539d0323f..480663981dfdcdae24e9aa306aea562e25baedef 100644 (file)
@@ -93,6 +93,7 @@ public:
 
 // Update EDL and preview only
        void update_preview(int changed_edl=0);
+       void update_auto(Track *track, int idx, CWindowCoord *vp);
        void draw_preview(int changed_edl);
        int current_operation;
        virtual int close_event();
@@ -103,6 +104,7 @@ public:
        MWindow *mwindow;
        CWindowTool *thread;
        CWindowCoord *event_caller;
+       int edge, span;
 };
 
 class CWindowCoord : public BC_TumbleTextBox
@@ -116,9 +118,13 @@ public:
        int handle_event();
 
        CWindowToolGUI *gui;
-       CWindowCoordSlider *slider;
-       CWindowCoordRange *range;
        int type;
+       CWindowToolAutoRangeTumbler *min_tumbler;
+       CWindowCoordSlider *slider;
+       CWindowToolAutoRangeTumbler *max_tumbler;
+       CWindowToolAutoRangeReset *range_reset;
+       CWindowToolAutoRangeTextBox *range_text;
+       CWindowCoordRangeTumbler *range;
 };
 
 class CWindowCoordSlider : public BC_FSlider
@@ -132,11 +138,11 @@ public:
        CWindowCoord *coord;
 };
 
-class CWindowCoordRange : public BC_Tumbler
+class CWindowCoordRangeTumbler : public BC_Tumbler
 {
 public:
-       CWindowCoordRange(CWindowCoord *coord, int x, int y);
-       ~CWindowCoordRange();
+       CWindowCoordRangeTumbler(CWindowCoord *coord, int x, int y);
+       ~CWindowCoordRangeTumbler();
        int update(float scale);
        int handle_up_event();
        int handle_down_event();
@@ -144,6 +150,26 @@ public:
        CWindowCoord *coord;
 };
 
+class CWindowCurveAutoEdge : public BC_Toggle
+{
+public:
+       CWindowCurveAutoEdge(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+       int handle_event();
+
+       MWindow *mwindow;
+       CWindowToolGUI *gui;
+};
+
+class CWindowCurveAutoSpan : public BC_Toggle
+{
+public:
+       CWindowCurveAutoSpan(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+
+       int handle_event();
+       MWindow *mwindow;
+       CWindowToolGUI *gui;
+};
+
 
 class CWindowCropApply : public BC_GenericButton
 {
@@ -782,6 +808,38 @@ public:
 };
 
 
+class CWindowToolAutoRangeTumbler : public BC_Tumbler
+{
+public:
+       CWindowToolAutoRangeTumbler(CWindowCoord *coord, int x, int y,
+                       int use_max, const char *tip);
+       int handle_up_event();
+       int handle_down_event();
+
+       CWindowCoord *coord;
+       int use_max;
+};
+
+class CWindowToolAutoRangeReset : public BC_Button
+{
+public:
+       CWindowToolAutoRangeReset(CWindowCoord *coord, int x, int y);
+       int handle_event();
+
+       CWindowCoord *coord;
+};
+
+class CWindowToolAutoRangeTextBox : public BC_TextBox
+{
+public:
+       CWindowToolAutoRangeTextBox(CWindowCoord *coord, int x, int y);
+       int button_press_event();
+       int handle_event();
+       int update_range();
+
+       CWindowCoord *coord;
+};
+
 
 class CWindowCameraGUI : public CWindowToolGUI
 {
@@ -792,10 +850,14 @@ public:
        void create_objects();
        void update();
 
+       BC_TitleBar *bar1, *bar2;
        CWindowCoord *x, *y, *z;
        CWindowCameraAddKeyframe *add_keyframe;
        CWindowCameraReset *reset;
-       CWindowCurveToggle *t_smooth, *t_linear;
+       BC_TitleBar *bar3, *bar4, *bar5;
+       CWindowCurveToggle *t_smooth, *t_linear, *t_tangent, *t_free, *t_bump;
+       CWindowCurveAutoSpan *auto_span;
+       CWindowCurveAutoEdge *auto_edge;
 };
 
 class CWindowCameraLeft : public BC_Button
@@ -888,10 +950,14 @@ public:
        void create_objects();
        void update();
 
+       BC_TitleBar *bar1, *bar2;
        CWindowCoord *x, *y, *z;
        CWindowProjectorAddKeyframe *add_keyframe;
        CWindowProjectorReset *reset;
-       CWindowCurveToggle *t_smooth, *t_linear;
+       BC_TitleBar *bar3, *bar4, *bar5;
+       CWindowCurveToggle *t_smooth, *t_linear, *t_tangent, *t_free, *t_bump;
+       CWindowCurveAutoSpan *auto_span;
+       CWindowCurveAutoEdge *auto_edge;
 };
 
 class CWindowProjectorLeft : public BC_Button