X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Fcwindowtool.h;h=ced331bc376897462a9dbd324f753f7606f64125;hb=9af81a9c7d1206521ffb3d21973a692dceded3cd;hp=1eb5002ebb1b39aa22b1b30d304a56fd537ca81f;hpb=c857b2fb7965d27d86d5785fb9f1b8957a871a1a;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/cwindowtool.h b/cinelerra-5.1/cinelerra/cwindowtool.h index 1eb5002e..ced331bc 100644 --- a/cinelerra-5.1/cinelerra/cwindowtool.h +++ b/cinelerra-5.1/cinelerra/cwindowtool.h @@ -46,6 +46,7 @@ public: // Called when window is visible void show_tool(); void hide_tool(); + void raise_tool(); void run(); void update_show_window(); @@ -79,9 +80,10 @@ public: // 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 draw_preview(int changed_edl); int current_operation; - int close_event(); + virtual int close_event(); int keypress_event(); int translation_event(); @@ -93,8 +95,10 @@ public: 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 logincrement); + CWindowCoord(CWindowToolGUI *gui, int x, int y, + int value); // Calls the window's handle_event int handle_event(); @@ -105,7 +109,8 @@ public: class CWindowCropOK : public BC_GenericButton { public: - CWindowCropOK(MWindow *mwindow, CWindowToolGUI *gui, int x, int y); + CWindowCropOK(MWindow *mwindow, CWindowToolGUI *gui, + int x, int y); // Perform the cropping operation int handle_event(); int keypress_event(); @@ -125,6 +130,15 @@ public: CWindowCoord *x1, *y1, *width, *height; }; +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 { public: @@ -132,125 +146,273 @@ public: ~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_GenericButton +{ +public: + CWindowMaskUnclear(MWindow *mwindow, CWindowMaskGUI *gui, + int x, int y, int w); + 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 CWindowMaskAffectedPoint : public BC_TumbleTextBox { public: - CWindowMaskDelMask(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 CWindowMaskAffectedPoint : public BC_TumbleTextBox +class CWindowMaskFocus : public BC_CheckBox { public: - CWindowMaskAffectedPoint(MWindow *mwindow, CWindowToolGUI *gui, int x, int y); - ~CWindowMaskAffectedPoint(); + CWindowMaskFocus(MWindow *mwindow, CWindowMaskGUI *gui, + int x, int y); + ~CWindowMaskFocus(); int handle_event(); MWindow *mwindow; - CWindowToolGUI *gui; + CWindowMaskGUI *gui; +}; + +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); char *get_caption() { return 0; } MWindow *mwindow; - CWindowToolGUI *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; + int stick; + float last_v; + Timer *timer; }; -class CWindowMaskClrPoint : public BC_Button +class CWindowMaskGangFeather : public BC_Toggle { public: - CWindowMaskClrPoint(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y); - ~CWindowMaskClrPoint(); - + CWindowMaskGangFeather(MWindow *mwindow, CWindowMaskGUI *gui, + int x, int y); + ~CWindowMaskGangFeather(); int handle_event(); MWindow *mwindow; CWindowMaskGUI *gui; @@ -259,17 +421,19 @@ public: class CWindowMaskBeforePlugins : public BC_CheckBox { public: - CWindowMaskBeforePlugins(CWindowToolGUI *gui, int x, int y); + CWindowMaskBeforePlugins(CWindowMaskGUI *gui, + int x, int y); int handle_event(); - CWindowToolGUI *gui; + CWindowMaskGUI *gui; }; 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 @@ -279,23 +443,43 @@ public: ~CWindowMaskGUI(); void create_objects(); void update(); + int close_event(); + void done_event(); + void set_focused(int v, float cx, float cy); + void update_buttons(MaskAuto *keyframe, int k); void handle_event(); void get_keyframe(Track* &track, MaskAutos* &autos, MaskAuto* &keyframe, SubMask* &mask, MaskPoint* &point, int create_it); - void update_preview(); - CWindowMaskName *name; - CWindowMaskClrMask *clr_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 *del_mask; + CWindowMaskUnclear *unclr_mask; + CWindowMaskClrMask *clr_mask; CWindowMaskFade *fade; CWindowMaskFadeSlider *fade_slider; - CWindowMaskMode *mode; + CWindowMaskGangFader *gang_fader; CWindowMaskAffectedPoint *active_point; - CWindowMaskClrPoint *clr_point; CWindowMaskDelPoint *del_point; CWindowCoord *x, *y; + CWindowMaskFocus *focus; + int focused; + 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; }; @@ -342,7 +526,6 @@ public: ~CWindowCameraGUI(); void create_objects(); void update(); - void update_preview(); // Update the keyframe from text boxes void handle_event(); @@ -356,7 +539,8 @@ private: 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; @@ -365,7 +549,8 @@ public: 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; @@ -374,7 +559,8 @@ public: 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; @@ -383,7 +569,8 @@ public: 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; @@ -392,7 +579,8 @@ public: 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; @@ -401,7 +589,8 @@ public: 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; @@ -414,7 +603,6 @@ public: ~CWindowProjectorGUI(); void create_objects(); void update(); - void update_preview(); void handle_event(); // BezierAuto* get_keyframe(); CWindowCoord *x, *y, *z; @@ -426,7 +614,8 @@ private: 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; @@ -435,7 +624,8 @@ public: 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; @@ -444,7 +634,8 @@ public: 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; @@ -453,7 +644,8 @@ public: 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; @@ -462,7 +654,8 @@ public: 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; @@ -471,7 +664,8 @@ public: 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;