#include "mutex.h"
#include "titler.h"
-
-
-
+#include <stdarg.h>
class TitleFontTumble;
class TitleSizeTumble;
class TitleCurSubMenu;
class TitleCurSubMenuItem;
class TitleFontsPopup;
+class TitleColorPopup;
+class TitlePngPopup;
class TitleWindow : public PluginClientWindow
{
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;
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;
TitleMain *client;
TitleWindow *window;
};
-class TitleColorThread : public ColorThread
+class TitleColorThread : public ColorPicker
{
public:
TitleColorThread(TitleMain *client, TitleWindow *window, int is_outline);
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 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;