*/
#include "bcdisplayinfo.h"
+#include "bcdialog.h"
#include "bcsignals.h"
#include "browsebutton.h"
#include "clip.h"
TitleWindow::~TitleWindow()
{
ungrab(client->server->mwindow->cwindow->gui);
- delete fonts_popup;
+ delete color_popup;
+ delete png_popup;
for( int i=0; i<fonts.size(); ++i )
delete fonts[i]->get_icon();
x += background_path->get_w() + margin;
add_tool(background_browse = new BrowseButton(
client->server->mwindow->theme, this, background_path,
- x, y, 0, _("background media"), _("Select background media path")));
+ x, y, "", _("background media"), _("Select background media path")));
x += background_browse->get_w() + 3*margin;
add_tool(loop_playback = new TitleLoopPlayback(client, x, y));
y += loop_playback->get_h() + 10;
add_tool(cur_popup = new TitleCurPopup(client, this));
cur_popup->create_objects();
add_tool(fonts_popup = new TitleFontsPopup(client, this));
+ color_popup = new TitleColorPopup(client, this);
+ png_popup = new TitlePngPopup(client, this);
show_window(1);
update();
TitleColorThread::TitleColorThread(TitleMain *client, TitleWindow *window, int is_outline)
- : ColorThread(1)
+ : ColorThread(1, _("Text Color"))
{
this->client = client;
this->window = window;
add_item(cur_item = new TitleCurItem(this, _("color")));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("color #")));
+ sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("color ")));
sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/color")));
add_item(cur_item = new TitleCurItem(this, _("alpha")));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
add_item(cur_item = new TitleCurItem(this, _("font")));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("font name")));
+ sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("font ")));
sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/font")));
add_item(cur_item = new TitleCurItem(this, _("size")));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
TitleCurPopup *popup = submenu->cur_item->popup;
TitleWindow *window = popup->window;
const char *item_text = get_text();
- if( !strcmp(item_text, _("font")) ) {
- int w = 300, h = 200;
- int x = window->get_abs_cursor_x(0) - w + 10;
- int y = window->get_abs_cursor_y(0) - 20;
- if( x < 2 ) x = 2;
- if( y < 2 ) y = 2;
- window->fonts_popup->activate(x, y, w,h);
+ if( !strcmp(item_text, _("font name")) ) {
+ int px, py;
+ window->get_pop_cursor_xy(px ,py);
+ window->fonts_popup->activate(px, py, 300,200);
+ return 1;
+ }
+ if( !strcmp(item_text, _("color #")) ) {
+ window->color_popup->activate();
+ return 1;
+ }
+ if( !strcmp(item_text, _("png file")) ) {
+ window->png_popup->activate();
return 1;
}
char txt[BCSTRLEN];
BC_ListBoxItem *item = get_selection(0, 0);
if( !item ) return 1;
const char *item_text = item->get_text();
- char txt[BCTEXTLEN];
- sprintf(txt, "<font %s>",item_text);
- int adv = strlen(txt);
- int ret = window->insert_ibeam(txt, adv);
- return ret;
+ char txt[BCTEXTLEN]; sprintf(txt, "<font %s>",item_text);
+ return window->insert_ibeam(txt, strlen(txt));
+}
+
+TitleColorPopup::TitleColorPopup(TitleMain *client, TitleWindow *window)
+ : ColorThread(0, _("Text Color"))
+{
+ this->client = client;
+ this->window = window;
+ this->color_value = client->config.color;
+}
+TitleColorPopup::~TitleColorPopup()
+{
+}
+int TitleColorPopup::handle_new_color(int output, int alpha)
+{
+ color_value = output;
+ return 1;
+}
+int TitleColorPopup::activate()
+{
+ start_window(client->config.color, 255, 1);
+ return 1;
+}
+void TitleColorPopup::handle_done_event(int result)
+{
+ if( result ) return;
+ char txt[BCSTRLEN]; sprintf(txt, "<color #%06x>",color_value);
+ window->insert_ibeam(txt, strlen(txt));
+}
+
+TitlePngPopup::TitlePngPopup(TitleMain *client, TitleWindow *window)
+ : BC_DialogThread()
+{
+ this->client = client;
+ this->window = window;
+}
+
+TitlePngPopup::~TitlePngPopup()
+{
+ close_window();
+}
+
+void TitlePngPopup::handle_done_event(int result)
+{
+ if( result ) return;
+ BrowseButtonWindow *gui = (BrowseButtonWindow *)get_gui();
+ const char *path = gui->get_submitted_path();
+ char txt[BCSTRLEN]; sprintf(txt, "<png %s>",path);
+ window->insert_ibeam(txt, strlen(txt));
+}
+
+BC_Window *TitlePngPopup::new_gui()
+{
+ BC_DisplayInfo display_info;
+ int x = display_info.get_abs_cursor_x();
+ int y = display_info.get_abs_cursor_y();
+
+ BC_Window *gui = new BrowseButtonWindow(client->server->mwindow->theme,
+ x-25, y-100, window, "", _("Png file"), _("Png path"), 0);
+ gui->create_objects();
+ return gui;
+}
+
+int TitlePngPopup::activate()
+{
+ BC_DialogThread::start();
+ return 1;
}