bunch-o compiler bitch'n
[goodguy/history.git] / cinelerra-5.1 / plugins / titler / titlerwindow.h
index 331b42b0f9553759e36987f0e5608df312e796d3..96086c5e28433ac4b18f29050e5e52a6983c30ab 100644 (file)
@@ -33,9 +33,7 @@ class TitleInterlace;
 #include "mutex.h"
 #include "titler.h"
 
-
-
-
+#include <stdarg.h>
 
 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;
@@ -91,11 +91,12 @@ public:
        int grab_event(XEvent *event);
        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);
 
        TitleMain *client;
@@ -152,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;
@@ -353,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:
@@ -470,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);
@@ -526,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
@@ -560,7 +587,7 @@ public:
        TitleWindow *window;
 };
 
-class TitleColorPopup : public ColorThread
+class TitleColorPopup : public ColorPicker
 {
 public:
        TitleColorPopup(TitleMain *client, TitleWindow *window);