bluebanana fix, avoid end_mask and not mask_selection
[goodguy/history.git] / cinelerra-5.1 / plugins / titler / titlerwindow.h
index 7e73324f1ad89084724b415e267efc5db26bfab2..2be28d18b094a6e60bcf1c49775d26d3954b7c4e 100644 (file)
@@ -33,9 +33,7 @@ class TitleInterlace;
 #include "mutex.h"
 #include "titler.h"
 
-
-
-
+#include <stdarg.h>
 
 class TitleFontTumble;
 class TitleSizeTumble;
@@ -78,6 +76,7 @@ class TitleCurSubMenu;
 class TitleCurSubMenuItem;
 class TitleFontsPopup;
 class TitleColorPopup;
+class TitlePngPopup;
 
 class TitleWindow : public PluginClientWindow
 {
@@ -93,7 +92,9 @@ public:
        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;
 
@@ -121,6 +122,7 @@ public:
        TitleCurPopup *cur_popup;
        TitleFontsPopup *fonts_popup;
        TitleColorPopup *color_popup;
+       TitlePngPopup *png_popup;
 
        int color_x, color_y;
        int outline_color_x, outline_color_y;
@@ -522,23 +524,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_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
@@ -546,7 +557,11 @@ 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;
@@ -566,4 +581,18 @@ public:
        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