X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fplugins%2Ftitler%2Ftitlerwindow.h;h=96086c5e28433ac4b18f29050e5e52a6983c30ab;hb=58d99c74e65066486dbebf7e1cb3087e7de1c92b;hp=79ab76f257072ea04f9db7e8dbb2bf1b93a630a5;hpb=974869b43e0d7ad356f6fee8549c1e4f14213330;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/plugins/titler/titlerwindow.h b/cinelerra-5.1/plugins/titler/titlerwindow.h index 79ab76f2..96086c5e 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; @@ -54,6 +52,8 @@ class TitleLinePitch; class TitleFade; class TitleFont; class TitleText; +class TitleTextChars; +class TitleTextBfrSz; class TitleX; class TitleY; class TitleW; @@ -77,6 +77,8 @@ class TitleCurItem; class TitleCurSubMenu; class TitleCurSubMenuItem; class TitleFontsPopup; +class TitleColorPopup; +class TitlePngPopup; class TitleWindow : public PluginClientWindow { @@ -89,10 +91,13 @@ public: int grab_event(XEvent *event); void update_color(); void update_justification(); + void update_stats(); void update(); void previous_font(); void next_font(); - 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); TitleMain *client; @@ -119,6 +124,8 @@ public: 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; @@ -146,6 +153,8 @@ public: TitleFade *fade_out; BC_Title *text_title; TitleText *text; + TitleTextChars *text_chars; + TitleTextBfrSz *text_bfrsz; BC_Title *justify_title; TitleLeft *left; TitleCenter *center; @@ -347,6 +356,21 @@ public: TitleMain *client; TitleWindow *window; }; +class TitleTextChars : public BC_Title +{ +public: + int update(int n); + 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 { public: @@ -464,7 +488,7 @@ public: TitleMain *client; TitleWindow *window; }; -class TitleColorThread : public ColorThread +class TitleColorThread : public ColorPicker { public: TitleColorThread(TitleMain *client, TitleWindow *window, int is_outline); @@ -520,23 +544,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 @@ -544,7 +577,39 @@ 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 ColorPicker +{ +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;