X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Ftitler%2Ftitlerwindow.h;h=99cd3e18588a780b4ea35b6b48294388655136e7;hb=b2eb290b3f6e5c233393017aa152e67c76243130;hp=0461cee4a010920a60a8a6f02fc683eded226a72;hpb=331564c0ebb30688da917fc1c89058e12771e348;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/plugins/titler/titlerwindow.h b/cinelerra-5.1/plugins/titler/titlerwindow.h index 0461cee4..99cd3e18 100644 --- a/cinelerra-5.1/plugins/titler/titlerwindow.h +++ b/cinelerra-5.1/plugins/titler/titlerwindow.h @@ -29,17 +29,17 @@ class TitleWindow; class TitleInterlace; #include "colorpicker.h" +#include "dragcheckbox.h" #include "filexml.h" #include "mutex.h" #include "titler.h" - - - +#include class TitleFontTumble; class TitleSizeTumble; class TitleItalic; +class TitleAlias; class TitleBold; class TitleDrag; class TitleSize; @@ -54,6 +54,7 @@ class TitleLinePitch; class TitleFade; class TitleFont; class TitleText; +class TitleTextChars; class TitleX; class TitleY; class TitleW; @@ -88,14 +89,18 @@ 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(); void update(); void previous_font(); void next_font(); - void check_style(const char *font_name); - int insert_ibeam(const char *txt, int adv); + 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; @@ -118,6 +123,7 @@ public: TitleStroker *stroker; BC_Title *style_title; TitleItalic *italic; + TitleAlias *alias; TitleBold *bold; TitleDrag *drag; TitleCurPopup *cur_popup; @@ -128,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; @@ -151,6 +157,7 @@ public: TitleFade *fade_out; BC_Title *text_title; TitleText *text; + TitleTextChars *text_chars; BC_Title *justify_title; TitleLeft *left; TitleCenter *center; @@ -201,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: @@ -218,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; }; @@ -289,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; @@ -297,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; @@ -306,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 @@ -352,6 +372,14 @@ public: TitleMain *client; TitleWindow *window; }; +class TitleTextChars : public BC_Title +{ +public: + int update(int n); + TitleTextChars(int x, int y, int w); + ~TitleTextChars(); +}; + class TitleX : public BC_TumbleTextBox { public: @@ -418,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 @@ -469,7 +498,7 @@ public: TitleMain *client; TitleWindow *window; }; -class TitleColorThread : public ColorThread +class TitleColorThread : public ColorPicker { public: TitleColorThread(TitleMain *client, TitleWindow *window, int is_outline); @@ -497,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; @@ -525,23 +554,32 @@ public: TitleCurPopup *popup; }; +enum { POPUP_OFFSET=-1, POPUP_NONE=0, POPUP_FONT, POPUP_COLOR, POPUP_PNG, }; + class TitleCurSubMenu : public BC_SubMenu { public: TitleCurSubMenu(TitleCurItem *cur_item); ~TitleCurSubMenu(); - + 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_subitemx(popup_type, ap, fmt); va_end(ap); + } + void add_subitem(const char *fmt,...) { va_list ap; + va_start(ap, fmt); add_subitemx(POPUP_NONE, ap, fmt); va_end(ap); + } TitleCurItem *cur_item; }; class TitleCurSubMenuItem : public BC_MenuItem { public: - TitleCurSubMenuItem(TitleCurSubMenu *submenu, const char *text); + TitleCurSubMenuItem(TitleCurSubMenu *submenu, const char *text, int popup_type); ~TitleCurSubMenuItem(); int handle_event(); TitleCurSubMenu *submenu; + int popup_type; }; class TitleFontsPopup : public BC_ListBox @@ -549,13 +587,17 @@ class TitleFontsPopup : public BC_ListBox public: TitleFontsPopup(TitleMain *client, TitleWindow *window); ~TitleFontsPopup(); + int keypress_event(); int handle_event(); + int show_tooltip(const char *text, int x,int y, int w,int h) { + return gui_tooltip(text); + } TitleMain *client; TitleWindow *window; }; -class TitleColorPopup : public ColorThread +class TitleColorPopup : public ColorPicker { public: TitleColorPopup(TitleMain *client, TitleWindow *window);