char* BC_FileBox::get_path(int selection) { if(selection == 0) { return get_submitted_path(); } else { BC_ListBoxItem *item = listbox->get_selection( column_of_type(FILEBOX_NAME), selection - 1); if(item) { fs->join_names(string, directory, item->get_text()); return string; } } return 0; }
int BC_FileBoxListBox::selection_changed() { BC_ListBoxItem *item = get_selection( filebox->column_of_type(FILEBOX_NAME), 0); if(item) { char path[BCTEXTLEN]; strcpy(path, item->get_text()); filebox->textbox->update(path); filebox->fs->extract_dir(filebox->directory, path); filebox->fs->extract_name(filebox->filename, path); filebox->fs->complete_path(path); strcpy(filebox->current_path, path); strcpy(filebox->submitted_path, path); } return 1; }
void TitleWindow::create_objects() { int x = 10, y = 10; int margin = client->get_theme()->widget_border; char string[BCTEXTLEN]; #define COLOR_W 50 #define COLOR_H 30 client->build_fonts(); client->build_previews(this); encodings.append(new BC_ListBoxItem("ISO8859-1")); encodings.append(new BC_ListBoxItem("ISO8859-2")); encodings.append(new BC_ListBoxItem("ISO8859-3")); encodings.append(new BC_ListBoxItem("ISO8859-4")); encodings.append(new BC_ListBoxItem("ISO8859-5")); encodings.append(new BC_ListBoxItem("ISO8859-6")); encodings.append(new BC_ListBoxItem("ISO8859-7")); encodings.append(new BC_ListBoxItem("ISO8859-8")); encodings.append(new BC_ListBoxItem("ISO8859-9")); encodings.append(new BC_ListBoxItem("ISO8859-10")); encodings.append(new BC_ListBoxItem("ISO8859-11")); encodings.append(new BC_ListBoxItem("ISO8859-12")); encodings.append(new BC_ListBoxItem("ISO8859-13")); encodings.append(new BC_ListBoxItem("ISO8859-14")); encodings.append(new BC_ListBoxItem("ISO8859-15")); encodings.append(new BC_ListBoxItem("KOI8")); encodings.append(new BC_ListBoxItem("UTF-8")); sizes.append(new BC_ListBoxItem("8")); sizes.append(new BC_ListBoxItem("9")); sizes.append(new BC_ListBoxItem("10")); sizes.append(new BC_ListBoxItem("11")); sizes.append(new BC_ListBoxItem("12")); sizes.append(new BC_ListBoxItem("13")); sizes.append(new BC_ListBoxItem("14")); sizes.append(new BC_ListBoxItem("16")); sizes.append(new BC_ListBoxItem("18")); sizes.append(new BC_ListBoxItem("20")); sizes.append(new BC_ListBoxItem("22")); sizes.append(new BC_ListBoxItem("24")); sizes.append(new BC_ListBoxItem("26")); sizes.append(new BC_ListBoxItem("28")); sizes.append(new BC_ListBoxItem("32")); sizes.append(new BC_ListBoxItem("36")); sizes.append(new BC_ListBoxItem("40")); sizes.append(new BC_ListBoxItem("48")); sizes.append(new BC_ListBoxItem("56")); sizes.append(new BC_ListBoxItem("64")); sizes.append(new BC_ListBoxItem("72")); sizes.append(new BC_ListBoxItem("100")); sizes.append(new BC_ListBoxItem("128")); sizes.append(new BC_ListBoxItem("256")); sizes.append(new BC_ListBoxItem("512")); sizes.append(new BC_ListBoxItem("1024")); paths.append(new BC_ListBoxItem(TitleMain::motion_to_text(NO_MOTION))); paths.append(new BC_ListBoxItem(TitleMain::motion_to_text(BOTTOM_TO_TOP))); paths.append(new BC_ListBoxItem(TitleMain::motion_to_text(TOP_TO_BOTTOM))); paths.append(new BC_ListBoxItem(TitleMain::motion_to_text(RIGHT_TO_LEFT))); paths.append(new BC_ListBoxItem(TitleMain::motion_to_text(LEFT_TO_RIGHT))); // Construct font list for(int i = 0; i < client->fonts->size(); i++) { int exists = 0; for(int j = 0; j < fonts.size(); j++) { if(!strcasecmp(fonts.get(j)->get_text(), client->fonts->get(i)->fixed_title)) { exists = 1; break; } } BC_ListBoxItem *item = 0; if(!exists) { fonts.append(item = new BC_ListBoxItem(client->fonts->get(i)->fixed_title)); if(!strcmp(client->config.font, item->get_text())) item->set_selected(1); if(client->fonts->values[i]->image) { VFrame *vframe = client->fonts->get(i)->image; BC_Pixmap *icon = new BC_Pixmap(this, vframe, PIXMAP_ALPHA); item->set_icon(icon); item->set_icon_vframe(vframe); } } } // Sort font list int done = 0; while(!done) { done = 1; for(int i = 0; i < fonts.size() - 1; i++) { if(strcmp(fonts.values[i]->get_text(), fonts.values[i + 1]->get_text()) > 0) { BC_ListBoxItem *temp = fonts.values[i + 1]; fonts.values[i + 1] = fonts.values[i]; fonts.values[i] = temp; done = 0; } } } add_tool(font_title = new BC_Title(x, y, _("Font:"))); font = new TitleFont(client, this, x, y + font_title->get_h()); font->create_objects(); x += font->get_w() + margin; add_subwindow(font_tumbler = new TitleFontTumble(client, this, x, y + 20)); x += font_tumbler->get_w() + margin; add_tool(size_title = new BC_Title(x, y, _("Size:"))); sprintf(string, "%d", client->config.size); size = new TitleSize(client, this, x, y + 20, string); size->create_objects(); x += size->get_w() + margin; add_subwindow(size_tumbler = new TitleSizeTumble(client, this, x, y + 20)); x += size_tumbler->get_w() + margin; add_tool(style_title = new BC_Title(x, y, _("Style:"))); add_tool(italic = new TitleItalic(client, this, x, y + 20)); add_tool(bold = new TitleBold(client, this, x, y + 50)); #ifdef USE_OUTLINE add_tool(stroke = new TitleStroke(client, this, x, y + 80)); #endif x += 90; add_tool(justify_title = new BC_Title(x, y, _("Justify:"))); add_tool(left = new TitleLeft(client, this, x, y + 20)); add_tool(center = new TitleCenter(client, this, x, y + 50)); add_tool(right = new TitleRight(client, this, x, y + 80)); x += 80; add_tool(top = new TitleTop(client, this, x, y + 20)); add_tool(mid = new TitleMid(client, this, x, y + 50)); add_tool(bottom= new TitleBottom(client, this, x, y + 80)); y += 50; x = 10; add_tool(x_title = new BC_Title(x, y, _("X:"))); title_x = new TitleX(client, this, x, y + 20); title_x->create_objects(); x += 90; add_tool(y_title = new BC_Title(x, y, _("Y:"))); title_y = new TitleY(client, this, x, y + 20); title_y->create_objects(); x += 90; add_tool(motion_title = new BC_Title(x, y, _("Motion type:"))); motion = new TitleMotion(client, this, x, y + 20); motion->create_objects(); x += 150; add_tool(loop = new TitleLoop(client, x, y + 20)); x += 100; x = 10; y += 50; add_tool(dropshadow_title = new BC_Title(x, y, _("Drop shadow:"))); dropshadow = new TitleDropShadow(client, this, x, y + 20); dropshadow->create_objects(); x += 100; add_tool(fadein_title = new BC_Title(x, y, _("Fade in (sec):"))); add_tool(fade_in = new TitleFade(client, this, &client->config.fade_in, x, y + 20)); x += 100; add_tool(fadeout_title = new BC_Title(x, y, _("Fade out (sec):"))); add_tool(fade_out = new TitleFade(client, this, &client->config.fade_out, x, y + 20)); x += 110; add_tool(speed_title = new BC_Title(x, y, _("Speed:"))); speed = new TitleSpeed(client, this, x, y + 20); speed->create_objects(); x += 110; color_x = x; color_y = y + 20; x += COLOR_W + 5; add_tool(color_button = new TitleColorButton(client, this, x, y + 20, 0)); x += color_button->get_w(); color_thread = new TitleColorThread(client, this, 0); x = color_x; y += 50; outline_color_x = x; outline_color_y = y + 20; x += COLOR_W + 5; add_tool(outline_color_button = new TitleColorButton(client, this, x, y + 20, 1)); x += outline_color_button->get_w(); outline_color_thread = new TitleColorThread(client, this, 1); x = 10; // y += 50; add_tool(outline_title = new BC_Title(x, y, _("Outline:"))); outline = new TitleOutline(client, this, x, y + outline_title->get_h() + margin); outline->create_objects(); x += outline->get_w() + margin; #ifndef X_HAVE_UTF8_STRING add_tool(encoding_title = new BC_Title(x, y + 3, _("Encoding:"))); encoding = new TitleEncoding(client, this, x, y + encoding_title->get_h() + margin); encoding->create_objects(); x += 100; #endif y += outline_title->get_h() + margin; add_tool(timecode = new TitleTimecode(client, x, y)); x += timecode->get_w() + margin; add_tool(timecode_format = new TitleTimecodeFormat( client, x, y, Units::print_time_format(client->config.timecode_format, string))); for(int i = 0; i < sizeof(timecode_formats) / sizeof(int); i++) { timecode_format->add_item(new BC_MenuItem( Units::print_time_format(timecode_formats[i], string))); } x = 10; y += timecode_format->get_h() + margin; add_tool(text_title = new BC_Title(x, y + 3, _("Text:"))); x = 10; y += text_title->get_h() + margin; text = new TitleText(client, this, x, y, get_w() - x - 10, get_h() - y - 10); text->create_objects(); update_color(); show_window(1); }