dynamic keyframes, textbox rework, andrea ffmpeg.opts, perpetual chkpt undo, lv2...
[goodguy/history.git] / cinelerra-5.1 / plugins / titler / titlerwindow.h
index 1f968301b82f73c8435f604651e8cc5a644c2951..99cd3e18588a780b4ea35b6b48294388655136e7 100644 (file)
@@ -29,6 +29,7 @@ class TitleWindow;
 class TitleInterlace;
 
 #include "colorpicker.h"
+#include "dragcheckbox.h"
 #include "filexml.h"
 #include "mutex.h"
 #include "titler.h"
@@ -38,6 +39,7 @@ class TitleInterlace;
 class TitleFontTumble;
 class TitleSizeTumble;
 class TitleItalic;
+class TitleAlias;
 class TitleBold;
 class TitleDrag;
 class TitleSize;
@@ -53,7 +55,6 @@ class TitleFade;
 class TitleFont;
 class TitleText;
 class TitleTextChars;
-class TitleTextBfrSz;
 class TitleX;
 class TitleY;
 class TitleW;
@@ -88,7 +89,7 @@ public:
 
        void create_objects();
        int resize_event(int w, int h);
-       int grab_event(XEvent *event);
+       void update_drag();
        void update_color();
        void update_justification();
        void update_stats();
@@ -98,6 +99,8 @@ public:
        void check_style(const char *font_name, int update);
        int insert_ibeam(const char *txt, int ofs=0);
        void done_event(int result);
+       void send_configure_change();
+       int check_configure_change(int ret);
 
        TitleMain *client;
 
@@ -120,6 +123,7 @@ public:
        TitleStroker *stroker;
        BC_Title *style_title;
        TitleItalic *italic;
+       TitleAlias *alias;
        TitleBold *bold;
        TitleDrag *drag;
        TitleCurPopup *cur_popup;
@@ -130,7 +134,7 @@ public:
        int color_x, color_y;
        int outline_color_x, outline_color_y;
        int drag_dx, drag_dy, dragging;
-       int cur_ibeam;
+       int cur_ibeam, pending_config;
 
        BC_Title *size_title;
        TitleSize *size;
@@ -154,7 +158,6 @@ public:
        BC_Title *text_title;
        TitleText *text;
        TitleTextChars *text_chars;
-       TitleTextBfrSz *text_bfrsz;
        BC_Title *justify_title;
        TitleLeft *left;
        TitleCenter *center;
@@ -205,7 +208,14 @@ public:
 };
 
 
-
+class TitleAlias : public BC_CheckBox
+{
+public:
+       TitleAlias(TitleMain *client, TitleWindow *window, int x, int y);
+       int handle_event();
+       TitleMain *client;
+       TitleWindow *window;
+};
 class TitleItalic : public BC_CheckBox
 {
 public:
@@ -222,11 +232,15 @@ public:
        TitleMain *client;
        TitleWindow *window;
 };
-class TitleDrag : public BC_CheckBox
+class TitleDrag : public DragCheckBox
 {
 public:
        TitleDrag(TitleMain *client, TitleWindow *window, int x, int y);
        int handle_event();
+       void update_gui();
+       Track *get_drag_track();
+       int64_t get_drag_position();
+
        TitleMain *client;
        TitleWindow *window;
 };
@@ -293,7 +307,7 @@ public:
 class TitleLoop : public BC_CheckBox
 {
 public:
-       TitleLoop(TitleMain *client, int x, int y);
+       TitleLoop(TitleMain *client, TitleWindow *window, int x, int y);
        int handle_event();
        TitleMain *client;
        TitleWindow *window;
@@ -301,7 +315,7 @@ public:
 class TitleLinePitch : public BC_CheckBox
 {
 public:
-       TitleLinePitch(TitleMain *client, int x, int y);
+       TitleLinePitch(TitleMain *client, TitleWindow *window, int x, int y);
        int handle_event();
        TitleMain *client;
        TitleWindow *window;
@@ -310,19 +324,21 @@ public:
 class TitleTimecode : public BC_CheckBox
 {
 public:
-       TitleTimecode(TitleMain *client, int x, int y);
+       TitleTimecode(TitleMain *client, TitleWindow *window, int x, int y);
        int handle_event();
        TitleMain *client;
+       TitleWindow *window;
 };
 
 class TitleTimecodeFormat : public BC_PopupMenu
 {
 public:
-       TitleTimecodeFormat(TitleMain *client, int x, int y, const char *text);
+       TitleTimecodeFormat(TitleMain *client, TitleWindow *window, int x, int y, const char *text);
        void create_objects();
        int update(int timecode_format);
        int handle_event();
        TitleMain *client;
+       TitleWindow *window;
 };
 
 class TitleFade : public BC_TextBox
@@ -363,13 +379,6 @@ public:
        TitleTextChars(int x, int y, int w);
        ~TitleTextChars();
 };
-class TitleTextBfrSz : public BC_Title
-{
-public:
-       int update(int n);
-       TitleTextBfrSz(int x, int y, int w);
-       ~TitleTextBfrSz();
-};
 
 class TitleX : public BC_TumbleTextBox
 {
@@ -437,6 +446,7 @@ public:
        TitleSpeed(TitleMain *client, TitleWindow *window, int x, int y);
        int handle_event();
        TitleMain *client;
+       TitleWindow *window;
 };
 
 class TitleLeft : public BC_Radial
@@ -516,7 +526,7 @@ public:
 class TitleLoopPlayback : public BC_CheckBox
 {
 public:
-       TitleLoopPlayback(TitleMain *client, int x, int y);
+       TitleLoopPlayback(TitleMain *client, TitleWindow *window, int x, int y);
        int handle_event();
        TitleMain *client;
        TitleWindow *window;
@@ -551,12 +561,12 @@ class TitleCurSubMenu : public BC_SubMenu
 public:
         TitleCurSubMenu(TitleCurItem *cur_item);
         ~TitleCurSubMenu();
-       void add_subitem(int popup_type, va_list ap, const char *fmt);
+       void add_subitemx(int popup_type, va_list ap, const char *fmt);
        void add_subitem(int popup_type, const char *fmt,...) { va_list ap;
-               va_start(ap, fmt); add_subitem(popup_type, ap, fmt); va_end(ap);
+               va_start(ap, fmt); add_subitemx(popup_type, ap, fmt); va_end(ap);
        }
        void add_subitem(const char *fmt,...) { va_list ap;
-               va_start(ap, fmt); add_subitem(POPUP_NONE, ap, fmt); va_end(ap);
+               va_start(ap, fmt); add_subitemx(POPUP_NONE, ap, fmt); va_end(ap);
        }
         TitleCurItem *cur_item;
 };