/*
* CINELERRA
* Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
+ * Copyright (C) 2003-2016 Cinelerra CV contributors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
virtual void handle_event() {};
// Update text boxes from keyframe here
virtual void update() {};
+
// 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();
int keypress_event();
int translation_event();
+ int press(void (CWindowCanvas::*fn)());
MWindow *mwindow;
CWindowTool *thread;
CWindowCoord *event_caller;
+ int edge, span;
};
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 group=-1);
+ CWindowCoord(CWindowToolGUI *gui, int x, int y, int value, int group=-1);
+ void create_objects();
+ void update_gui(float value);
// Calls the window's handle_event
int handle_event();
CWindowToolGUI *gui;
+ int type;
+ CWindowToolAutoRangeTumbler *min_tumbler;
+ CWindowCoordSlider *slider;
+ CWindowToolAutoRangeTumbler *max_tumbler;
+ CWindowToolAutoRangeReset *range_reset;
+ CWindowToolAutoRangeTextBox *range_text;
+ CWindowCoordRangeTumbler *range;
+};
+
+class CWindowCoordSlider : public BC_FSlider
+{
+public:
+ CWindowCoordSlider(CWindowCoord *coord, int x, int y, int w,
+ float mn, float mx, float value);
+ ~CWindowCoordSlider();
+ int handle_event();
+
+ CWindowCoord *coord;
+};
+
+class CWindowCoordRangeTumbler : public BC_Tumbler
+{
+public:
+ CWindowCoordRangeTumbler(CWindowCoord *coord, int x, int y);
+ ~CWindowCoordRangeTumbler();
+ int update(float scale);
+ int handle_up_event();
+ int handle_down_event();
+
+ 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
{
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
{
public:
CWindowCameraGUI(MWindow *mwindow, CWindowTool *thread);
~CWindowCameraGUI();
+ void handle_event();
void create_objects();
void update();
-// Update the keyframe from text boxes
- void handle_event();
-// BezierAuto* get_keyframe();
+ BC_TitleBar *bar1, *bar2;
CWindowCoord *x, *y, *z;
-private:
-// Toggles for keyframe curve mode (for camera automation only)
- CWindowCurveToggle *t_smooth, *t_linear;
+ CWindowCameraAddKeyframe *add_keyframe;
+ CWindowCameraReset *reset;
+ 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
CWindowCameraGUI *gui;
};
+class CWindowCameraAddKeyframe : public BC_Button
+{
+public:
+ CWindowCameraAddKeyframe(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowToolGUI *gui;
+};
+
+class CWindowCameraReset : public BC_Button
+{
+public:
+ CWindowCameraReset(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowToolGUI *gui;
+};
+
+
class CWindowProjectorGUI : public CWindowToolGUI
{
public:
CWindowProjectorGUI(MWindow *mwindow, CWindowTool *thread);
~CWindowProjectorGUI();
+ void handle_event();
void create_objects();
void update();
- void handle_event();
-// BezierAuto* get_keyframe();
+
+ BC_TitleBar *bar1, *bar2;
CWindowCoord *x, *y, *z;
-private:
-// Toggles for keyframe curve mode (projector automation only)
- CWindowCurveToggle *t_smooth, *t_linear;
+ CWindowProjectorAddKeyframe *add_keyframe;
+ CWindowProjectorReset *reset;
+ 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
CWindowProjectorGUI *gui;
};
+class CWindowProjectorAddKeyframe : public BC_Button
+{
+public:
+ CWindowProjectorAddKeyframe(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowToolGUI *gui;
+};
+
+class CWindowProjectorReset : public BC_Button
+{
+public:
+ CWindowProjectorReset(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowToolGUI *gui;
+};
+
};
-
#endif