text_title = 0;
text = 0;
text_chars = 0;
- text_bfrsz = 0;
justify_title = 0;
left = 0; center = 0; right = 0;
top = 0; mid = 0; bottom = 0;
x += text_title->get_w() + 20;
int wid = BC_Title::calculate_w(this,"0")*10;
add_tool(text_chars = new TitleTextChars(x,y,wid));
- x += text_chars->get_w() + 20;
- add_tool(text_bfrsz = new TitleTextBfrSz(x,y,wid));
y += text_title->get_h() + margin;
x = margin;
void TitleWindow::update_stats()
{
text_chars->update(client->config.wlen);
- int len = MESSAGESIZE - BCTEXTLEN - strlen(text->get_text()) - 1;
- if( len < 0 ) len = 0;
- text_bfrsz->update(len);
}
void TitleWindow::update()
fade_out->update((float)client->config.fade_out);
font->update(client->config.font);
check_style(client->config.font,0);
- text->update(&client->config.wtext[0]);
+ text->update(client->config.wtext ? &client->config.wtext[0] : L"");
speed->update(client->config.pixels_per_second);
outline->update((int64_t)client->config.outline_size);
#ifdef USE_STROKER
int x, int y, int w, int h)
: BC_ScrollTextBox(window, x, y, w,
BC_TextBox::pixels_to_rows(window, MEDIUMFONT, h),
- client->config.wtext, 8192)
+ client->config.wtext, 0)
{
this->client = client;
this->window = window;
int TitleText::handle_event()
{
window->fonts_popup->deactivate();
- int text_len = strlen(get_text());
- int avail = MESSAGESIZE - BCTEXTLEN;
- if( text_len >= avail ) { // back off last utf8 char
- char text[2*sizeof(client->config.wtext)];
- strcpy(text, get_text());
- text_len = avail;
- while( text_len > 0 && (text[text_len-1] & 0xc0) == 0x80 )
- text[--text_len] = 0;
- if( text_len > 0 )
- text[--text_len] = 0;
- update(text);
- }
- int len = sizeof(client->config.wtext) / sizeof(wchar_t);
- wcsncpy(client->config.wtext, get_wtext(), len);
- client->config.wtext[len-1] = 0;
- client->config.wlen = wcslen(client->config.wtext);
+ const wchar_t *wtext = get_wtext();
+ long wlen = wcslen(wtext);
+ client->config.demand(wlen);
+ wcsncpy(client->config.wtext, wtext, client->config.wsize);
+ client->config.wlen = wlen;
window->update_stats();
window->send_configure_change();
return 1;
return BC_Title::update(text, 0);
}
-TitleTextBfrSz::TitleTextBfrSz(int x, int y, int w)
- : BC_Title(x, y, "", MEDIUMFONT, -1, 0, w)
-{
-}
-TitleTextBfrSz::~TitleTextBfrSz()
-{
-}
-int TitleTextBfrSz::update(int n)
-{
- char text[BCSTRLEN];
- sprintf(text, _("bfrsz: %d "),n);
- return BC_Title::update(text, 0);
-}
-
TitleDropShadow::TitleDropShadow(TitleMain *client, TitleWindow *window, int x, int y)
: BC_TumbleTextBox(window, client->config.dropshadow,
TitleCurItem *cur_item;
TitleCurSubMenu *sub_menu;
char *item;
- add_item(cur_item = new TitleCurItem(this, item = KW_NUDGE));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_NUDGE)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s dx,dy",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_COLOR));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_COLOR)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem(POPUP_COLOR,"%s %s",item,_("#"));
sub_menu->add_subitem("%s ",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_ALPHA));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_ALPHA)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s ",item);
sub_menu->add_subitem("%s 0.",item);
sub_menu->add_subitem("%s .5",item);
sub_menu->add_subitem("%s 1.",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_FONT));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_FONT)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem(POPUP_FONT,"%s %s",item, _("name"));
sub_menu->add_subitem(POPUP_OFFSET, "%s ",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_SIZE));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_SIZE)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s +",item);
sub_menu->add_subitem("%s -",item);
sub_menu->add_subitem("%s ",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_BOLD));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_BOLD)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s 1",item);
sub_menu->add_subitem("%s 0",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_ITALIC));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_ITALIC)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s 1",item);
sub_menu->add_subitem("%s 0",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_CAPS));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_CAPS)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s 1",item);
sub_menu->add_subitem("%s 0",item);
sub_menu->add_subitem("%s -1",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_UL));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_UL)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s 1",item);
sub_menu->add_subitem("%s 0",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_BLINK));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_BLINK)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s 1",item);
sub_menu->add_subitem("%s -1",item);
sub_menu->add_subitem("%s ",item);
sub_menu->add_subitem("%s 0",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_FIXED));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_FIXED)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s ",item);
sub_menu->add_subitem("%s 20",item);
sub_menu->add_subitem("%s 10",item);
sub_menu->add_subitem("%s 0",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_ALIAS));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_ALIAS)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s 1",item);
sub_menu->add_subitem("%s 0",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_SUP));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_SUP)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem("%s 1",item);
sub_menu->add_subitem("%s 0",item);
sub_menu->add_subitem("%s -1",item);
sub_menu->add_subitem("/%s",item);
- add_item(cur_item = new TitleCurItem(this, item = KW_PNG));
+ add_item(cur_item = new TitleCurItem(this, item = _(KW_PNG)));
cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
sub_menu->add_subitem(POPUP_PNG,"%s %s", item, _("file"));
}
BC_ListBoxItem *item = get_selection(0, 0);
if( !item ) return 1;
const char *item_text = item->get_text();
- char txt[BCTEXTLEN]; sprintf(txt, "<%s %s>", KW_FONT, item_text);
+ char txt[BCTEXTLEN]; sprintf(txt, "<%s %s>", _(KW_FONT), item_text);
return window->insert_ibeam(txt);
}
void TitleColorPopup::handle_done_event(int result)
{
if( result ) return;
- char txt[BCSTRLEN]; sprintf(txt, "<%s #%06x>", KW_COLOR, color_value);
+ char txt[BCSTRLEN]; sprintf(txt, "<%s #%06x>", _(KW_COLOR), color_value);
window->insert_ibeam(txt);
}
if( result ) return;
BrowseButtonWindow *gui = (BrowseButtonWindow *)get_gui();
const char *path = gui->get_submitted_path();
- char txt[BCSTRLEN]; sprintf(txt, "<%s %s>", KW_PNG, path);
+ char txt[BCSTRLEN]; sprintf(txt, "<%s %s>", _(KW_PNG), path);
window->insert_ibeam(txt);
}