X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Ftitler%2Ftitlerwindow.h;h=2be28d18b094a6e60bcf1c49775d26d3954b7c4e;hb=4b91e8a72deb0be3437ef0edd745646e525534d4;hp=cc3734b4caf54df4b91b577bb9a543a483a87a30;hpb=77815ec03df6a03ed75433e8cf8ae1e83fb76d6e;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/plugins/titler/titlerwindow.h b/cinelerra-5.1/plugins/titler/titlerwindow.h index cc3734b4..2be28d18 100644 --- a/cinelerra-5.1/plugins/titler/titlerwindow.h +++ b/cinelerra-5.1/plugins/titler/titlerwindow.h @@ -33,9 +33,7 @@ class TitleInterlace; #include "mutex.h" #include "titler.h" - - - +#include class TitleFontTumble; class TitleSizeTumble; @@ -76,6 +74,9 @@ class TitleCurPopup; class TitleCurItem; class TitleCurSubMenu; class TitleCurSubMenuItem; +class TitleFontsPopup; +class TitleColorPopup; +class TitlePngPopup; class TitleWindow : public PluginClientWindow { @@ -91,6 +92,9 @@ public: void update(); void previous_font(); void next_font(); + void check_style(const char *font_name, int update); + int insert_ibeam(const char *txt, int ofs=0); + void done_event(int result); TitleMain *client; @@ -116,10 +120,14 @@ public: TitleBold *bold; TitleDrag *drag; TitleCurPopup *cur_popup; + TitleFontsPopup *fonts_popup; + TitleColorPopup *color_popup; + TitlePngPopup *png_popup; int color_x, color_y; int outline_color_x, outline_color_y; int drag_dx, drag_dy, dragging; + int cur_ibeam; BC_Title *size_title; TitleSize *size; @@ -155,6 +163,7 @@ public: TitleTimecodeFormat *timecode_format; TitleBackground *background; TitleBackgroundPath *background_path; + BrowseButton *background_browse; TitleLoopPlayback *loop_playback; // Color preview @@ -162,7 +171,6 @@ public: ArrayList encodings; ArrayList paths; ArrayList fonts; - int cur_ibeam; }; @@ -516,23 +524,75 @@ 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_subitem(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); + } + void add_subitem(const char *fmt,...) { va_list ap; + va_start(ap, fmt); add_subitem(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 +{ +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 +{ +public: + TitleColorPopup(TitleMain *client, TitleWindow *window); + ~TitleColorPopup(); + int handle_new_color(int output, int alpha); + void handle_done_event(int result); + int activate(); + + TitleMain *client; + TitleWindow *window; + int color_value; +}; + +class TitlePngPopup : public BC_DialogThread +{ +public: + TitlePngPopup(TitleMain *client, TitleWindow *window); + ~TitlePngPopup(); + + void handle_done_event(int result); + BC_Window* new_gui(); + int activate(); + + TitleMain *client; + TitleWindow *window; }; #endif