X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbclistbox.C;h=0cea9d626cb9275cd7e21e5332d86b2d53873563;hp=0285fd39247d6b59c12564a701927322b021fe41;hb=576087eacf577a0fa5d3008d37c4d5b597f0990a;hpb=55ccff122957ddfaa871cf8f251cfe866732c870 diff --git a/cinelerra-5.1/guicast/bclistbox.C b/cinelerra-5.1/guicast/bclistbox.C index 0285fd39..0cea9d62 100644 --- a/cinelerra-5.1/guicast/bclistbox.C +++ b/cinelerra-5.1/guicast/bclistbox.C @@ -311,6 +311,7 @@ BC_ListBox::BC_ListBox(int x, int y, int w, int h, list_highlighted = 0; disabled = 0; + scroll_repeat = 0; allow_drag_scroll = 1; process_drag = 1; @@ -324,9 +325,9 @@ BC_ListBox::BC_ListBox(int x, int y, int w, int h, popup_w = w; popup_h = h; - for( int i = 0; i < 3; i++ ) column_bg[i] = 0; - for( int i = 0; i < 4; i++ ) button_images[i] = 0; - for( int i = 0; i < 5; i++ ) toggle_images[i] = 0; + for( int i=0; i<3; ++i ) column_bg[i] = 0; + for( int i=0; i<4; ++i ) button_images[i] = 0; + for( int i=0; i<5; ++i ) toggle_images[i] = 0; column_sort_up = 0; column_sort_dn = 0; @@ -376,9 +377,9 @@ BC_ListBox::~BC_ListBox() if( bg_pixmap ) delete bg_pixmap; if( xscrollbar ) delete xscrollbar; if( yscrollbar ) delete yscrollbar; - for( int i = 0; i < 3; i++ ) delete column_bg[i]; - for( int i = 0; i < 4; i++ ) delete button_images[i]; - for( int i = 0; i < 5; i++ ) delete toggle_images[i]; + for( int i=0; i<3; ++i ) delete column_bg[i]; + for( int i=0; i<4; ++i ) delete button_images[i]; + for( int i=0; i<5; ++i ) delete toggle_images[i]; if( column_sort_up ) delete column_sort_up; if( column_sort_dn ) delete column_sort_dn; @@ -407,7 +408,7 @@ void BC_ListBox::reset_query() int BC_ListBox::evaluate_query(char *string) { - for( int i = 0; i < data[search_column].size(); i++ ) { + for( int i=0; itext) <= 0 && data[search_column].get(i)->searchable ) { return i; @@ -430,8 +431,8 @@ int BC_ListBox::query_list() if( done ) { // Deselect all - for( int i = 0; i < data[0].total; i++ ) { - for( int j = 0; j < columns; j++ ) { + for( int i=0; iselected ) prev_selection = i; data[j].values[i]->selected = 0; } @@ -440,7 +441,7 @@ int BC_ListBox::query_list() // Select one if( prev_selection != result ) selection_changed = 1; - for( int j = 0; j < columns; j++ ) { + for( int j=0; jselected = 1; } center_selection(result); @@ -453,7 +454,7 @@ void BC_ListBox::init_column_width() { if( !column_width && data ) { int widest = 5, wd; - for( int i = 0; i < data[0].total; i++ ) { + for( int i=0; i widest ) widest = wd; } @@ -465,7 +466,7 @@ int BC_ListBox::initialize() { if( is_popup ) { if( use_button ) { - for( int i = 0; i < 4; ++i ) { + for( int i=0; i<4; ++i ) { button_images[i] = new BC_Pixmap(parent_window, BC_WindowBase::get_resources()->listbox_button[i], PIXMAP_ALPHA); @@ -483,12 +484,12 @@ int BC_ListBox::initialize() current_operation = NO_OPERATION; } - for( int i = 0; i < 3; i++ ) { + for( int i=0; i<3; ++i ) { column_bg[i] = new BC_Pixmap(parent_window, get_resources()->listbox_column[i], PIXMAP_ALPHA); } - for( int i = 0; i < 5; i++ ) { + for( int i=0; i<5; ++i ) { toggle_images[i] = new BC_Pixmap(parent_window, get_resources()->listbox_expand[i], PIXMAP_ALPHA); @@ -592,7 +593,7 @@ void BC_ListBox::calculate_last_coords_recursive( int *next_text_y, int top_level) { - for( int i = 0; i < data[0].size(); i++ ) { + for( int i=0; iicon ) { if( data[0].get(i)->icon->get_h() > row_height ) row_height = data[0].get(i)->icon->get_h(); @@ -654,7 +655,7 @@ void BC_ListBox::calculate_item_coords_recursive( // Set up items which need autoplacement. // Should fill icons down and then across - for( int i = 0; i < data[0].size(); i++ ) { + for( int i=0; iautoplace_text ) { display_format = LISTBOX_TEXT; @@ -744,6 +745,19 @@ void BC_ListBox::set_is_suggestions(int value) { this->is_suggestions = value; } +void BC_ListBox::set_scroll_repeat() +{ + if( scroll_repeat ) return; + scroll_repeat = 1; + set_repeat(get_resources()->scroll_repeat); +} + +void BC_ListBox::unset_scroll_repeat() +{ + if( !scroll_repeat ) return; + scroll_repeat = 0; + unset_repeat(get_resources()->scroll_repeat); +} void BC_ListBox::set_use_button(int value) { @@ -911,8 +925,8 @@ int BC_ListBox::get_items_width() int widest = 0; if( display_format == LISTBOX_ICONS ) { - for( int i = 0; i < columns; i++ ) { - for( int j = 0; j < data[i].total; j++ ) { + for( int i=0; iicon_x; @@ -949,7 +963,7 @@ int BC_ListBox::get_items_height(ArrayList *data, int columns, top_level = 1; } - for( int j = 0; j < (data ? data[master_column].total : 0); j++ ) { + for( int j=0; j<(data?data[master_column].total:0); ++j ) { int x, y, w, h; BC_ListBoxItem *item = data[master_column].values[j]; @@ -1014,7 +1028,7 @@ void BC_ListBox::expand_item(BC_ListBoxItem *item, int expand) void BC_ListBox::collapse_recursive(ArrayList *data, int master_column) { - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; iget_sublist() && item->expand ) { item->expand = 0; @@ -1027,8 +1041,8 @@ void BC_ListBox::set_autoplacement(ArrayList *data, int do_icons, int do_text) { - for( int i = 0; i < data[0].total; i++ ) { - for( int j = 0; j < columns; j++ ) { + for( int i=0; iautoplace_icon = 1; if( do_text ) data[j].values[i]->autoplace_text = 1; } @@ -1101,13 +1115,13 @@ int BC_ListBox::get_column_offset(int column) void BC_ListBox::column_width_boundaries() { if( column_width ) { - for( int i = 0; i < columns; i++ ) { + for( int i=0; i * { if( !data ) return 0; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; iselected ) { //printf("BC_ListBox::get_selection_recursive %d\n", __LINE__); @@ -1247,7 +1261,7 @@ int BC_ListBox::get_selection_number_recursive(ArrayList *data, if( !data ) return 0; if( !counter ) counter = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; iselected ) { @@ -1275,7 +1289,7 @@ int BC_ListBox::set_selection_mode(int mode) void BC_ListBox::delete_columns() { if( column_titles ) { - for( int i = 0; i < columns; i++ ) { + for( int i=0; icolumn_titles = new char*[columns]; - for( int i = 0; i < columns; i++ ) { + for( int i=0; icolumn_titles[i] = new char[strlen(column_titles[i]) + 1]; strcpy(this->column_titles[i], column_titles[i]); } } if( column_width ) { this->column_width = new int[columns]; - for( int i = 0; i < columns; i++ ) { + for( int i=0; icolumn_width[i] = column_width[i]; } } @@ -1385,7 +1399,7 @@ int BC_ListBox::select_previous(int skip, BC_ListBoxItem *selected_item, int *co // Scan backwards to item pointer. Then count visible items to get // destination. No wraparound. do { - for( int i = data[master_column].total - 1; i >= 0; i-- ) { + for( int i=data[master_column].total-1; i>=0; --i ) { BC_ListBoxItem *current_item = data[master_column].values[i]; if( current_item->get_sublist() && current_item->get_expand() ) { @@ -1398,7 +1412,7 @@ int BC_ListBox::select_previous(int skip, BC_ListBoxItem *selected_item, int *co if( *got_first ) { (*counter)++; if( (*counter) >= skip ) { - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 1; (*got_second) = 1; return item_to_index(this->data, current_item); @@ -1406,7 +1420,7 @@ int BC_ListBox::select_previous(int skip, BC_ListBoxItem *selected_item, int *co } else { if( current_item->selected ) { - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 0; (*got_first) = 1; (*counter)++; @@ -1421,7 +1435,7 @@ int BC_ListBox::select_previous(int skip, BC_ListBoxItem *selected_item, int *co (*got_first) = 1; current_item = data[master_column].values[0]; - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 1; (*got_second) = 1; return item_to_index(this->data, current_item); @@ -1454,7 +1468,7 @@ int BC_ListBox::select_next(int skip, BC_ListBoxItem *selected_item, int *counte // Scan forwards to currently selected item pointer. // Then count visible items to get destination. No wraparound. do { - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; i= skip ) { - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 1; (*got_second) = 1; return item_to_index(this->data, current_item); @@ -1471,7 +1485,7 @@ int BC_ListBox::select_next(int skip, BC_ListBoxItem *selected_item, int *counte else { // Got currently selected item. Deselect it. if( current_item->selected ) { - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 0; (*got_first) = 1; (*counter)++; @@ -1497,7 +1511,7 @@ int BC_ListBox::select_next(int skip, BC_ListBoxItem *selected_item, int *counte (*got_first) = 1; current_item = data[master_column].values[0]; - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 1; (*got_second) = 1; } @@ -1507,7 +1521,7 @@ int BC_ListBox::select_next(int skip, BC_ListBoxItem *selected_item, int *counte int current_row = data[master_column].total - 1; current_item = data[master_column].values[current_row]; - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 1; (*got_second) = 1; } @@ -1551,7 +1565,7 @@ int BC_ListBox::center_selection(int selection, if( !data ) data = this->data; if( !counter ) counter = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; i view_w ) { need_xscroll = 1; view_h = popup_h - @@ -1823,8 +1837,8 @@ int BC_ListBox::select_rectangle(ArrayList *data, int x1, int y1, int x2, int y2) { int result = 0; - for( int i = 0; i < data[master_column].total; i++ ) { - for( int j = 0; j < columns; j++ ) { + for( int i=0; i *data, int temp = -1; if( !counter ) counter = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; i *data, void BC_ListBox::move_selection(ArrayList *dst, ArrayList *src) { - for( int i = 0; i < src[master_column].total; ) { + for( int i=0; iselected ) { - for( int j = 0; j < columns; j++ ) { + for( int j=0; j *data, if( !counter ) counter = &temp; if( destination < 0 || destination >= data[master_column].total ) { - for( int j = 0; j < columns; j++ ) { - for( int i = 0; i < src[j].total; i++ ) { + for( int j=0; j *data, int temp = -1; if( !counter ) counter = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; i *data, { int temp = -1; if( !counter ) counter = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; i *data, int cursor_x, // Icons are not treed if( display_format == LISTBOX_ICONS ) { - for( int j = data[master_column].total - 1; j >= 0; j-- ) { + for( int j=data[master_column].total-1; j>=0; --j ) { int icon_x, icon_y, icon_w, icon_h; int text_x, text_y, text_w, text_h; BC_ListBoxItem *item = data[master_column].values[j]; @@ -2045,7 +2059,7 @@ int BC_ListBox::get_cursor_item(ArrayList *data, int cursor_x, (cursor_y > get_title_h() + LISTBOX_BORDER && cursor_y < gui->get_h())) ) { // Search table for cursor obstruction - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; icursor_leave_event(&redraw_toggles); draw_items(1); @@ -2170,7 +2184,7 @@ int BC_ListBox::get_first_selection(ArrayList *data, int *resul int temp = -1; if( !result ) result = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; iselected ) return (*result); @@ -2189,7 +2203,7 @@ int BC_ListBox::get_total_items(ArrayList *data, int temp = 0; if( !result ) result = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; iget_sublist() ) get_total_items(data[master_column].values[i]->get_sublist(), @@ -2211,7 +2225,7 @@ int BC_ListBox::get_last_selection(ArrayList *data, top_level = 1; } - for( int i = data[master_column].total - 1; i >= 0; i-- ) { + for( int i=data[master_column].total-1; i>=0; --i ) { BC_ListBoxItem *item = data[master_column].values[i]; (*result)++; if( item->selected ) { @@ -2239,10 +2253,10 @@ void BC_ListBox::select_range(ArrayList *data, int temp = -1; if( !current ) current = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; i= start && (*current) < end ) { - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 1; } BC_ListBoxItem *item = data[master_column].values[i]; @@ -2285,14 +2299,14 @@ int BC_ListBox::toggle_item_selection(ArrayList *data, int temp = -1; if( !counter ) counter = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; iselected; // Set row - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = selected; return 1; } @@ -2311,8 +2325,8 @@ int BC_ListBox::toggle_item_selection(ArrayList *data, void BC_ListBox::set_all_selected(ArrayList *data, int value) { - for( int i = 0; i < data[master_column].total; i++ ) { - for( int j = 0; j < columns; j++ ) { + for( int i=0; iselected = value; } @@ -2328,10 +2342,10 @@ void BC_ListBox::set_selected(ArrayList *data, { int temp = -1; if( !counter ) counter = &temp; - for( int i = 0; i < data[master_column].total && (*counter) != item_number; i++ ) { + for( int i=0; iselected = value; } @@ -2352,18 +2366,18 @@ int BC_ListBox::update_selection(ArrayList *data, int result = 0; if( !counter ) counter = &temp; - for( int i = 0; i < data[master_column].total; i++ ) { + for( int i=0; iselected ) { result = 1; - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 1; } else if( (*counter) != selection_number && item->selected ) { result = 1; - for( int j = 0; j < columns; j++ ) + for( int j=0; jselected = 0; } if( item->get_sublist() ) @@ -2377,8 +2391,8 @@ int BC_ListBox::update_selection(ArrayList *data, void BC_ListBox::promote_selections(ArrayList *data, int old_value, int new_value) { - for( int i = 0; i < data[master_column].total; i++ ) { - for( int j = 0; j < columns; j++ ) { + for( int i=0; iselected == old_value ) item->selected = new_value; } @@ -2443,6 +2457,14 @@ int BC_ListBox::button_press_event() if( debug ) printf("BC_ListBox::button_press_event %d\n", __LINE__); } + if( current_operation != NO_OPERATION ) { + switch( current_operation ) { + case DRAG_ITEM: + case COLUMN_DRAG: + return drag_stop_event(); + } + } + // Wheel mouse pressed if( get_buttonpress() == 4 ) { if( current_operation == NO_OPERATION ) { @@ -2627,6 +2649,7 @@ int BC_ListBox::button_release_event() int cursor_x, cursor_y; int do_event = 0; new_value = 0; + unset_scroll_repeat(); //printf("BC_ListBox::button_release_event 1 %d\n", current_operation); switch( current_operation ) { @@ -2644,7 +2667,6 @@ int BC_ListBox::button_release_event() case BUTTON_DOWN_SELECT: case SELECT: //printf("BC_ListBox::button_release_event 10\n"); - unset_repeat(get_resources()->scroll_repeat); current_operation = NO_OPERATION; if( gui ) { translate_coordinates(top_level->event_win, gui->win, @@ -2679,7 +2701,6 @@ int BC_ListBox::button_release_event() case SELECT_RECT: - unset_repeat(get_resources()->scroll_repeat); if( data ) { // Demote selections from rectangle selection promote_selections(data, 2, 1); @@ -2730,7 +2751,7 @@ int BC_ListBox::button_release_event() case EXPAND_DN: { int redraw_toggles = 0; - for( int i = 0; i < expanders.total && !result; i++ ) { + for( int i=0; ibutton_release_event(&redraw_toggles) ) { result = 1; } @@ -2778,7 +2799,7 @@ int BC_ListBox::test_column_divisions(int cursor_x, int cursor_y, int &new_curso if( gui && column_titles && cursor_y >= 0 && cursor_y < get_title_h() && cursor_x >= 0 && cursor_x < gui->get_w() ) { - for( int i = 1; i < columns; i++ ) { + for( int i=1; i= -xposition + get_column_offset(i) - 5 && cursor_x < -xposition + get_column_offset(i) + get_resources()->listbox_title_hotspot ) { @@ -2801,7 +2822,7 @@ int BC_ListBox::test_column_titles(int cursor_x, int cursor_y) if( gui && column_titles && cursor_y >= 0 && cursor_y < get_title_h() && cursor_x >= 0 && cursor_x < gui->get_w() ) { - for( int i = 0; i < columns; i++ ) { + for( int i=0; i= -xposition + get_column_offset(i) && (cursor_x < -xposition + get_column_offset(i + 1) || i == columns - 1) ) { @@ -2820,7 +2841,7 @@ int BC_ListBox::test_column_titles(int cursor_x, int cursor_y) int BC_ListBox::test_expanders() { - for( int i = 0; i < expanders.total; i++ ) { + for( int i=0; ibutton_press_event() ) { current_operation = EXPAND_DN; draw_toggles(1); @@ -2877,9 +2898,8 @@ int BC_ListBox::cursor_motion_event() break; } case SELECT_RECT: { - if( test_drag_scroll(get_cursor_x(), get_cursor_y()) ) { - set_repeat(get_resources()->scroll_repeat); - } + if( test_drag_scroll(get_cursor_x(), get_cursor_y()) ) + set_scroll_repeat(); int old_x1 = MIN(rect_x1, rect_x2); int old_x2 = MAX(rect_x1, rect_x2); @@ -2930,11 +2950,8 @@ int BC_ListBox::cursor_motion_event() case SELECT: { int old_highlighted_item = highlighted_item; - if( test_drag_scroll(get_cursor_x(), - get_cursor_y()) ) { - set_repeat(get_resources()->scroll_repeat); - } - + if( test_drag_scroll(get_cursor_x(), get_cursor_y()) ) + set_scroll_repeat(); highlighted_item = selection_number = get_cursor_item(data, get_cursor_x(), get_cursor_y(), &highlighted_ptr); @@ -3006,7 +3023,7 @@ int BC_ListBox::cursor_motion_event() case EXPAND_DN: { int redraw_toggles = 0; - for( int i = 0; i < expanders.total && !result; i++ ) { + for( int i=0; icursor_motion_event( &redraw_toggles); } @@ -3040,7 +3057,7 @@ int BC_ListBox::cursor_motion_event() if( highlighted_division < 0 && highlighted_title < 0 && (display_format == LISTBOX_TEXT || display_format == LISTBOX_ICON_LIST) ) { - for( int i = 0; i < expanders.total; i++ ) { + for( int i=0; icursor_motion_event( &redraw_toggles); } @@ -3126,29 +3143,22 @@ int BC_ListBox::drag_start_event() int cx, cy; get_abs_cursor(cx, cy); if( item_return->icon_vframe ) { - cx -= item_return->icon_vframe->get_w() / 2, - cy -= item_return->icon_vframe->get_h() / 2; drag_popup = new BC_DragWindow(this, item_return->icon_vframe, cx, cy); } else -// this probably works not! if( item_return->icon ) { - cx -= item_return->icon->get_w() / 2, - cy -= item_return->icon->get_h() / 2; drag_popup = new BC_DragWindow(this, item_return->icon, cx, cy); } else { - cx -= drag_icon_vframe->get_w() / 2, - cy -= drag_icon_vframe->get_h() / 2; drag_popup = new BC_DragWindow(this, drag_icon_vframe, cx, cy); } current_operation = DRAG_ITEM; // require shift down for scrolling if( allow_drag < 0 && shift_down() ) - set_repeat(get_resources()->scroll_repeat); + set_scroll_repeat(); return 1; } } @@ -3215,9 +3225,10 @@ int BC_ListBox::drag_motion_event() int BC_ListBox::drag_stop_event() { + int result = 0; + unset_scroll_repeat(); switch( current_operation ) { case DRAG_ITEM: - unset_repeat(get_resources()->scroll_repeat); // Inside window boundary if( top_level->cursor_x > 0 && top_level->cursor_x < gui->get_w() - drag_popup->get_w() / 2 && @@ -3229,9 +3240,9 @@ int BC_ListBox::drag_stop_event() if( display_format == LISTBOX_ICONS ) { reposition_item(data, selection_number, - top_level->cursor_x + drag_popup->get_offset_x() - + top_level->cursor_x - drag_popup->get_w() / 2 - LISTBOX_MARGIN - 2 + xposition, - top_level->cursor_y + drag_popup->get_offset_y() - + top_level->cursor_y - drag_popup->get_h() / 2 - LISTBOX_MARGIN - 2 + yposition); } else @@ -3255,13 +3266,8 @@ int BC_ListBox::drag_stop_event() } else drag_popup->drag_failure_event(); - - delete drag_popup; - flush(); - drag_popup = 0; - current_operation = NO_OPERATION; - new_value = 0; - return 1; + result = 1; + break; case COLUMN_DRAG: if( dragged_title != highlighted_title ) { @@ -3271,13 +3277,18 @@ int BC_ListBox::drag_stop_event() else drag_popup->drag_failure_event(); } + result = 1; + } + + if( result ) { current_operation = NO_OPERATION; delete drag_popup; flush(); drag_popup = 0; - return 1; + new_value = 0; } - return 0; + + return result; } BC_DragWindow* BC_ListBox::get_drag_popup() @@ -3590,7 +3601,7 @@ int BC_ListBox::draw_items(int flush, int draw_bg) clear_listbox(2, 2 + title_h, view_w, view_h); set_font(MEDIUMFONT); - for( int i = 0; i < data[master_column].size(); i++ ) { + for( int i=0; i= -get_item_w(item) && get_item_x(item) < view_w && @@ -3646,7 +3657,7 @@ int BC_ListBox::draw_items(int flush, int draw_bg) // Draw one column at a time so text overruns don't go into the next column // clear column backgrounds int current_toggle = 0; - for( int j = 0; j < columns; j++ ) { + for( int j=0; j *data, // Search for a branch and make room for toggle if there is one if( column == 0 ) { - for( int i = 0; i < data[column].size(); i++ ) { + for( int i=0; iget_sublist() ) { subindent = BC_WindowBase::get_resources()->listbox_expand[0]->get_w(); break; @@ -3709,7 +3720,7 @@ void BC_ListBox::draw_text_recursive(ArrayList *data, } row_height = row_ascent = row_descent = 0; - for( int i = 0; i < data[column].total; i++ ) { + for( int i=0; i row_height ) row_height = ht; @@ -3719,7 +3730,7 @@ void BC_ListBox::draw_text_recursive(ArrayList *data, if( dt > row_descent ) row_ascent = bl; } - for( int i = 0; i < data[column].size(); i++ ) { + for( int i=0; idraw(0); //printf("BC_ListBox::draw_toggles 1 %d\n", flash); @@ -3931,10 +3942,10 @@ void BC_ListBox::dump(ArrayList *data, int columns, printf("BC_ListBox::dump 1\n"); } - for( int i = 0; i < data[master_column].total; i++ ) { - for( int k = 0; k < indent; k++ ) + for( int i=0; iget_text_x(), item->get_text_y(),