#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
virtual int close_event();
int keypress_event();
int translation_event();
+ int press(void (CWindowCanvas::*fn)());
MWindow *mwindow;
CWindowTool *thread;
CWindowToolGUI *gui;
};
-class CWindowCropOK : public BC_GenericButton
+class CWindowCropApply : public BC_GenericButton
{
public:
- CWindowCropOK(MWindow *mwindow, CWindowToolGUI *gui,
+ 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
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;
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:
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
CWindowMaskDelPoint(MWindow *mwindow, CWindowMaskGUI *gui,
int x, int y);
int handle_event();
- int keypress_event();
MWindow *mwindow;
CWindowMaskGUI *gui;
};
~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;
CWindowMaskGUI *gui;
int stick;
float last_v;
+ float max;
Timer *timer;
};
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,
CWindowMaskGUI *gui;
};
-class CWindowMaskSave : public BC_GenericButton
+class CWindowMaskSave : public BC_Button
{
public:
CWindowMaskSave(MWindow *mwindow, CWindowMaskGUI *gui,
CWindowMaskItems mask_items;
};
-class CWindowMaskDelete : public BC_GenericButton
+class CWindowMaskDelete : public BC_Button
{
public:
CWindowMaskDelete(MWindow *mwindow, CWindowMaskGUI *gui,
CWindowMaskGUI *gui;
};
-class CWindowMaskCenter : public BC_GenericButton
+class CWindowMaskCenter : public BC_Button
{
public:
CWindowMaskCenter(MWindow *mwindow, CWindowMaskGUI *gui,
CWindowMaskGUI *gui;
};
-class CWindowMaskNormal : public BC_GenericButton
+class CWindowMaskNormal : public BC_Button
{
public:
CWindowMaskNormal(MWindow *mwindow, CWindowMaskGUI *gui,
CWindowMaskGUI *gui;
};
-class CWindowMaskShape : public BC_ListBox
+class CWindowMaskShape : public BC_Button
{
public:
- 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;
};
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;
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;
CWindowCoord *x, *y;
+ CWindowMaskScaleXY *mask_scale_x, *mask_scale_y, *mask_scale_xy;
+ int scale_mode;
CWindowMaskFocus *focus;
int focused;
CWindowMaskGangFocus *gang_focus;
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();
CWindowCoord *x, *y, *z;
-private:
-// Toggles for keyframe curve mode (for camera automation only)
+ CWindowCameraAddKeyframe *add_keyframe;
+ CWindowCameraReset *reset;
CWindowCurveToggle *t_smooth, *t_linear;
};
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();
+
CWindowCoord *x, *y, *z;
-private:
-// Toggles for keyframe curve mode (projector automation only)
+ CWindowProjectorAddKeyframe *add_keyframe;
+ CWindowProjectorReset *reset;
CWindowCurveToggle *t_smooth, *t_linear;
};
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