#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
// Called when window is visible
void show_tool();
void hide_tool();
+ void raise_tool();
void run();
void update_show_window();
virtual void handle_event() {};
// Update text boxes from keyframe here
virtual void update() {};
+
// Update EDL and preview only
- virtual void update_preview() {};
+ 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;
- int close_event();
+ 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 CWindowCropOK : public BC_GenericButton
+class CWindowCurveAutoSpan : public BC_Toggle
{
public:
- CWindowCropOK(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ CWindowCurveAutoSpan(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+
+ int handle_event();
+ MWindow *mwindow;
+ CWindowToolGUI *gui;
+};
+
+
+class CWindowCropApply : public BC_GenericButton
+{
+public:
+ CWindowCropApply(MWindow *mwindow, CWindowCropGUI *crop_gui,
+ int x, int y);
// Perform the cropping operation
int handle_event();
int keypress_event();
MWindow *mwindow;
- CWindowToolGUI *gui;
+ CWindowCropGUI *crop_gui;
};
+class CWindowCropOpMode : public BC_PopupMenu
+{
+ static const char *crop_ops[CROP_MODES];
+public:
+ CWindowCropOpMode(MWindow *mwindow, CWindowCropGUI *crop_gui,
+ int mode, int x, int y);
+ ~CWindowCropOpMode();
+ void create_objects();
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowCropGUI *crop_gui;
+ int mode;
+};
+
+class CWindowCropOpItem : public BC_MenuItem
+{
+public:
+ CWindowCropOpItem(CWindowCropOpMode *popup, const char *text, int id);
+ int handle_event();
+
+ CWindowCropOpMode *popup;
+ int id;
+};
+
+
class CWindowCropGUI : public CWindowToolGUI
{
public:
// Update the gui
void handle_event();
CWindowCoord *x1, *y1, *width, *height;
+ CWindowCropOpMode *crop_mode;
+};
+
+class CWindowMaskItem : public BC_ListBoxItem
+{
+public:
+ CWindowMaskItem(const char *text, int id=-1, int color=-1)
+ : BC_ListBoxItem(text, color), id(id) {}
+ ~CWindowMaskItem() {}
+ int id;
};
class CWindowMaskItems : public ArrayList<BC_ListBoxItem*>
~CWindowMaskItems() { remove_all_objects(); }
};
+class CWindowMaskOnTrack : public BC_PopupTextBox
+{
+public:
+ CWindowMaskOnTrack(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y, int w, const char *text);
+ ~CWindowMaskOnTrack();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+ CWindowMaskItems track_items;
+
+ int handle_event();
+ void update_items();
+};
+
+class CWindowMaskTrackTumbler : public BC_Tumbler
+{
+public:
+ CWindowMaskTrackTumbler(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
+ ~CWindowMaskTrackTumbler();
+ int handle_up_event();
+ int handle_down_event();
+ int do_event(int dir);
+
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+};
+
+
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 CWindowMaskUnclear : public BC_Button
+{
+public:
+ CWindowMaskUnclear(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+};
+
+class CWindowMaskSoloTrack : public BC_CheckBox
+{
+public:
+ CWindowMaskSoloTrack(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y, int v);
+ static int calculate_w(BC_WindowBase *gui);
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+};
+
+class CWindowMaskDelMask : public BC_GenericButton
+{
+public:
+ CWindowMaskDelMask(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *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 CWindowMaskEnable : public BC_CheckBox
+{
+public:
+ CWindowMaskEnable(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y, int no, int v);
+ ~CWindowMaskEnable();
+
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+ int no;
+};
+
class CWindowMaskFade : public BC_TumbleTextBox
{
public:
- CWindowMaskFade(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ CWindowMaskFade(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
~CWindowMaskFade();
int update(float v);
int update_value(float v);
int handle_event();
MWindow *mwindow;
- CWindowToolGUI *gui;
+ CWindowMaskGUI *gui;
};
class CWindowMaskFadeSlider : public BC_ISlider
{
public:
- CWindowMaskFadeSlider(MWindow *mwindow, CWindowToolGUI *gui,
+ CWindowMaskFadeSlider(MWindow *mwindow, CWindowMaskGUI *gui,
int x, int y, int w);
~CWindowMaskFadeSlider();
int handle_event();
int update(int64_t v);
char *get_caption() { return 0; }
MWindow *mwindow;
- CWindowToolGUI *gui;
+ CWindowMaskGUI *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, CWindowMaskGUI *gui,
+ int x, int y);
+ ~CWindowMaskGangFader();
int handle_event();
MWindow *mwindow;
- CWindowToolGUI *gui;
+ CWindowMaskGUI *gui;
};
-class CWindowMaskDelMask : public BC_GenericButton
+class CWindowMaskGangFocus : public BC_Toggle
{
public:
- CWindowMaskDelMask(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ CWindowMaskGangFocus(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
+ ~CWindowMaskGangFocus();
int handle_event();
MWindow *mwindow;
- CWindowToolGUI *gui;
+ 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:
+ CWindowMaskSmoothButton(MWindow *mwindow, CWindowMaskGUI *gui,
+ const char *tip, int type, int on, int x, int y, const char *images);
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+ int type, on;
};
class CWindowMaskAffectedPoint : public BC_TumbleTextBox
{
public:
- CWindowMaskAffectedPoint(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ CWindowMaskAffectedPoint(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
~CWindowMaskAffectedPoint();
int handle_event();
MWindow *mwindow;
- CWindowToolGUI *gui;
+ CWindowMaskGUI *gui;
+};
+
+class CWindowMaskFocus : public BC_CheckBox
+{
+public:
+ CWindowMaskFocus(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
+ ~CWindowMaskFocus();
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+ static int calculate_w(CWindowMaskGUI *gui);
+};
+
+class CWindowMaskScaleXY : public BC_Toggle
+{
+public:
+ CWindowMaskScaleXY(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y, VFrame **data, int v,
+ int id, const char *tip);
+ ~CWindowMaskScaleXY();
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+ int id;
+};
+
+class CWindowMaskHelp : public BC_CheckBox
+{
+public:
+ CWindowMaskHelp(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
+ ~CWindowMaskHelp();
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+};
+
+class CWindowMaskDrawMarkers : public BC_CheckBox
+{
+public:
+ CWindowMaskDrawMarkers(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
+ ~CWindowMaskDrawMarkers();
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+};
+
+class CWindowMaskDrawBoundary : public BC_CheckBox
+{
+public:
+ CWindowMaskDrawBoundary(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
+ ~CWindowMaskDrawBoundary();
+ int handle_event();
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
};
class CWindowMaskDelPoint : public BC_GenericButton
{
public:
- CWindowMaskDelPoint(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ CWindowMaskDelPoint(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
int handle_event();
- int keypress_event();
MWindow *mwindow;
- CWindowToolGUI *gui;
+ CWindowMaskGUI *gui;
};
class CWindowMaskFeather : public BC_TumbleTextBox
{
public:
- CWindowMaskFeather(MWindow *mwindow, CWindowToolGUI *gui, int x, int y);
+ CWindowMaskFeather(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
~CWindowMaskFeather();
int update(float v);
int update_value(float v);
int handle_event();
MWindow *mwindow;
- CWindowToolGUI *gui;
+ CWindowMaskGUI *gui;
};
class CWindowMaskFeatherSlider : public BC_FSlider
{
public:
- CWindowMaskFeatherSlider(MWindow *mwindow, CWindowToolGUI *gui,
+ CWindowMaskFeatherSlider(MWindow *mwindow, CWindowMaskGUI *gui,
int x, int y, int w, float v);
~CWindowMaskFeatherSlider();
int handle_event();
int update(float v);
+ int update(int r, float v, float mn, float mx);
char *get_caption() { return 0; }
MWindow *mwindow;
- CWindowToolGUI *gui;
+ CWindowMaskGUI *gui;
+ int stick;
+ float last_v;
+ float max;
+ Timer *timer;
};
-class CWindowMaskClrMask : public BC_Button
+class CWindowMaskGangFeather : public BC_Toggle
{
public:
- CWindowMaskClrMask(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y);
- ~CWindowMaskClrMask();
- static int calculate_w(MWindow *mwindow);
+ CWindowMaskGangFeather(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y);
+ ~CWindowMaskGangFeather();
int handle_event();
MWindow *mwindow;
CWindowMaskGUI *gui;
};
-class CWindowMaskClrPoint : public BC_Button
+class CWindowMaskBeforePlugins : public BC_CheckBox
{
public:
- CWindowMaskClrPoint(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y);
- ~CWindowMaskClrPoint();
+ CWindowMaskBeforePlugins(CWindowMaskGUI *gui,
+ int x, int y);
+ int handle_event();
+ CWindowMaskGUI *gui;
+};
+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 CWindowMaskBeforePlugins : public BC_CheckBox
+class CWindowMaskLoad : public BC_Button
{
public:
- CWindowMaskBeforePlugins(CWindowToolGUI *gui, int x, int y);
+ CWindowMaskLoad(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y, int w);
int handle_event();
- CWindowToolGUI *gui;
+
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+};
+
+class CWindowMaskSave : public BC_Button
+{
+public:
+ CWindowMaskSave(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y, int w);
+ ~CWindowMaskSave();
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+ CWindowMaskPresetDialog *preset_dialog;
+};
+
+class CWindowMaskPresetDialog : public BC_DialogThread
+{
+public:
+ CWindowMaskPresetDialog(MWindow *mwindow, CWindowMaskGUI *gui);
+ ~CWindowMaskPresetDialog();
+ void handle_close_event(int result);
+ void handle_done_event(int result);
+ BC_Window* new_gui();
+ void start_dialog(int sx, int sy, MaskAuto *keyframe);
+
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+ CWindowMaskPresetGUI *pgui;
+ int sx, sy;
+ MaskAuto *keyframe;
+};
+
+class CWindowMaskPresetGUI : public BC_Window
+{
+public:
+ CWindowMaskPresetGUI(CWindowMaskPresetDialog *preset_dialog,
+ int x, int y, const char *title);
+ void create_objects();
+
+ CWindowMaskPresetDialog *preset_dialog;
+ CWindowMaskPresetText *preset_text;
+};
+
+class CWindowMaskPresetText : public BC_PopupTextBox
+{
+public:
+ CWindowMaskPresetText(CWindowMaskPresetGUI *pgui,
+ int x, int y, int w, int h, const char *text);
+ int handle_event();
+ void update_items();
+
+ CWindowMaskPresetGUI *pgui;
+ CWindowMaskItems mask_items;
+};
+
+class CWindowMaskDelete : public BC_Button
+{
+public:
+ CWindowMaskDelete(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y, int w);
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+};
+
+class CWindowMaskCenter : public BC_Button
+{
+public:
+ CWindowMaskCenter(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y, int w);
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+};
+
+class CWindowMaskNormal : public BC_Button
+{
+public:
+ CWindowMaskNormal(MWindow *mwindow, CWindowMaskGUI *gui,
+ int x, int y, int w);
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+};
+
+class CWindowMaskShape : public BC_Button
+{
+public:
+ CWindowMaskShape(MWindow *mwindow, CWindowMaskGUI *gui,
+ const char *images, int shape, int x, int y, const char *tip);
+ ~CWindowMaskShape();
+ void builtin_shape(int i, SubMask *sub_mask);
+ int handle_event();
+
+ MWindow *mwindow;
+ CWindowMaskGUI *gui;
+ int shape;
+ CWindowMaskItems shape_items;
};
class CWindowDisableOpenGLMasking : public BC_CheckBox
{
public:
- CWindowDisableOpenGLMasking(CWindowToolGUI *gui, int x, int y);
+ CWindowDisableOpenGLMasking(CWindowMaskGUI *gui,
+ int x, int y);
int handle_event();
- CWindowToolGUI *gui;
+ CWindowMaskGUI *gui;
};
class CWindowMaskGUI : public CWindowToolGUI
~CWindowMaskGUI();
void create_objects();
void update();
+ int close_event();
+ void done_event();
void handle_event();
+ void set_focused(int v, float cx, float cy);
+ void update_buttons(MaskAuto *keyframe, int k);
void get_keyframe(Track* &track, MaskAutos* &autos, MaskAuto* &keyframe,
SubMask* &mask, MaskPoint* &point, int create_it);
- void update_preview();
-
- CWindowMaskName *name;
- CWindowMaskClrMask *clr_mask;
- CWindowMaskDelMask *del_mask;
+ void load_masks(ArrayList<SubMask *> &masks);
+ void save_masks(ArrayList<SubMask *> &masks);
+ int smooth_mask(int typ, int on);
+ int save_mask(const char *nm);
+ int del_mask(const char *nm);
+ int center_mask();
+ int normal_mask();
+
+ CWindowMaskOnTrack *mask_on_track;
+ CWindowMaskTrackTumbler *mask_track_tumbler;
+ CWindowMaskName *mask_name;
+ CWindowMaskButton *mask_buttons[SUBMASKS];
+ CWindowMaskThumbler *mask_thumbler;
+ BC_Title *mask_blabels[SUBMASKS];
+ CWindowMaskEnable *mask_enables[SUBMASKS];
+ CWindowMaskSoloTrack *mask_solo_track;
+ CWindowMaskDelMask *mask_del;
+ CWindowMaskUnclear *mask_unclr;
+ CWindowMaskClrMask *mask_clr;
+ 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;
+ CWindowMaskNormal *mask_normal;
CWindowMaskFade *fade;
CWindowMaskFadeSlider *fade_slider;
- CWindowMaskMode *mode;
+ CWindowMaskGangFader *gang_fader;
CWindowMaskAffectedPoint *active_point;
- CWindowMaskClrPoint *clr_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;
CWindowCoord *x, *y;
+ CWindowMaskScaleXY *mask_scale_x, *mask_scale_y, *mask_scale_xy;
+ int scale_mode;
+ CWindowMaskFocus *focus;
+ int focused;
+ CWindowMaskGangFocus *gang_focus;
+ CWindowMaskHelp *help;
+ int helped, help_y, help_h;
+ 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;
};
};
+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();
- void update_preview();
-// 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
{
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;
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;
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;
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;
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;
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;
};
+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 update_preview();
- 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
{
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;
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;
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;
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;
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;
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;
};
+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