+ load_modes.remove_all_objects();
+ for( int i=0; i<TOTAL_LOADMODES; ++i ) delete mode[i];
+}
+
+const char *LoadMode::mode_to_text(int mode)
+{
+ for( int i=0; i<load_modes.total; ++i ) {
+ if( load_modes[i]->value == mode )
+ return load_modes[i]->get_text();
+ }
+ return _("Unknown");
+}
+
+void LoadMode::load_mode_geometry(BC_WindowBase *gui, Theme *theme,
+ int use_nothing, int use_nested, int line_wrap,
+ int *pw, int *ph)
+{
+ int pad = 5;
+ const char *load_text = LOADMODE_LOAD_TEXT;
+ int mw = BC_Title::calculate_w(gui, load_text);
+ int mh = BC_Title::calculate_h(gui, load_text);
+ int ix = mw + 2*pad, iy = 0, x1 = ix;
+ int ww = theme->loadmode_w + 24;
+ if( mw < ww ) mw = ww;
+
+ for( int i=0; i<TOTAL_LOADMODES; ++i ) {
+ switch( i ) {
+ case LOADMODE_NOTHING:
+ if( !use_nothing) continue;
+ break;
+ case LOADMODE_EDL_CLIP:
+ case LOADMODE_EDL_NESTED:
+ case LOADMODE_EDL_FILEREF:
+ if( !use_nested ) continue;
+ if( iy ) break;
+ ix = 0; iy = mh + pad;
+ const char *edl_text = LOADMODE_EDL_TEXT;
+ ix += bmax(BC_Title::calculate_w(gui, load_text),
+ BC_Title::calculate_w(gui, edl_text)) + 2*pad;
+ break;
+ }
+ int text_line, w, h, toggle_x, toggle_y;
+ int text_x, text_y, text_w, text_h;
+ BC_Toggle::calculate_extents(gui,
+ theme->get_image_set(mode_images[i]), 0,
+ &text_line, &w, &h, &toggle_x, &toggle_y,
+ &text_x, &text_y, &text_w, &text_h, 0, MEDIUMFONT);
+ if( line_wrap && ix+w > ww ) { ix = x1; iy += h+pad; }
+ if( (ix+=w) > mw ) mw = ix;
+ if( (h+=iy) > mh ) mh = h;
+ ix += pad;
+ }
+
+ ix = 0; iy = mh+pad;
+ mh = iy + BC_TextBox::calculate_h(gui, MEDIUMFONT, 1, 1);
+ if( pw ) *pw = mw;
+ if( ph ) *ph = mh;