X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbclistbox.C;h=31bcb1412cf40ad43ef64322f422c2413d0b2eaf;hp=54bab352a6f7a6b12db02067a4b21c36b5831db3;hb=ae44cc4a24c9e04ee5e3b38baf6ce529832cfb39;hpb=2ce5f3585284c78107b6eab879ee4e94686ff41a diff --git a/cinelerra-5.1/guicast/bclistbox.C b/cinelerra-5.1/guicast/bclistbox.C index 54bab352..31bcb141 100644 --- a/cinelerra-5.1/guicast/bclistbox.C +++ b/cinelerra-5.1/guicast/bclistbox.C @@ -618,8 +618,7 @@ void BC_ListBox::calculate_last_coords_recursive( *next_text_y = current_text_y; // Add sublist depth if it is expanded - if( item->get_sublist() && item->get_columns() && - item->get_expand() ) { + if( item->sublist_active() && item->get_columns() ) { calculate_last_coords_recursive(item->get_sublist(), icon_x, next_icon_x, next_icon_y, next_text_y, 0); } @@ -712,7 +711,7 @@ void BC_ListBox::calculate_item_coords_recursive( if( dt > row_descent ) row_descent = dt; // printf("BC_ListBox::calculate_item_coords_recursive %p %d %d %d %d %s \n", -// item->get_sublist(), item->get_columns(), item->get_expand(), +// item->sublist, item->get_columns(), item->get_expand(), // next_text_x, *next_text_y, item->get_text()); // Increment position of next column if( j < columns - 1 ) { @@ -743,8 +742,7 @@ void BC_ListBox::calculate_item_coords_recursive( // Set up a sublist BC_ListBoxItem *item = data[master_column].values[i]; - if( item->get_sublist() && item->get_columns() && - item->get_expand() ) { + if( item->sublist_active() && item->get_columns() ) { calculate_item_coords_recursive( item->get_sublist(), icon_x, next_icon_x, next_icon_y, next_text_y, 0); } @@ -1010,11 +1008,8 @@ int BC_ListBox::get_items_height(ArrayList *data, int columns, get_text_mask(item, x, y, w, h); *result += h; // Descend into sublist - if( item->get_sublist() && item->get_expand() ) { - get_items_height(item->get_sublist(), - item->get_columns(), - result); - } + if( item->sublist_active() ) + get_items_height(item->get_sublist(), item->get_columns(), result); break; case LISTBOX_ICONS: case LISTBOX_ICONS_PACKED: @@ -1076,7 +1071,7 @@ void BC_ListBox::collapse_recursive(ArrayList *data, { for( int i=0; iget_sublist() && item->expand ) { + if( item->sublist_active() ) { item->expand = 0; collapse_recursive(item->get_sublist(), master_column); } @@ -1094,7 +1089,7 @@ void BC_ListBox::set_autoplacement(ArrayList *data, } BC_ListBoxItem *item = data[master_column].values[i]; - if( item->get_sublist() ) { + if( item->sublist_active() ) { set_autoplacement(item->get_sublist(), do_icons, do_text); } } @@ -1293,7 +1288,7 @@ BC_ListBoxItem* BC_ListBox::get_selection_recursive(ArrayList * } } - if( item->get_sublist() ) { + if( item->sublist_active() ) { BC_ListBoxItem *result = get_selection_recursive(item->get_sublist(), column, selection_number); @@ -1326,7 +1321,7 @@ int BC_ListBox::get_selection_number_recursive(ArrayList *data, return (*counter); } } - if( item->get_sublist() ) { + if( item->sublist_active() ) { int result = get_selection_number_recursive(item->get_sublist(), column, selection_number, counter); if( result >= 0 ) return result; @@ -1457,8 +1452,7 @@ int BC_ListBox::select_previous(int skip, BC_ListBoxItem *selected_item, int *co do { 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() ) { + if( current_item->sublist_active() ) { int result = select_previous(skip, selected_item, counter, current_item->get_sublist(), got_first, got_second); if( *got_second ) @@ -1549,8 +1543,7 @@ int BC_ListBox::select_next(int skip, BC_ListBoxItem *selected_item, int *counte } // Descend into expanded level - if( current_item->get_sublist() && - current_item->get_expand() ) { + if( current_item->sublist_active() ) { int result = select_next(skip, selected_item, counter, current_item->get_sublist(), got_first, got_second); if( *got_second ) { @@ -1654,10 +1647,8 @@ int BC_ListBox::center_selection(int selection, } // Descend - if( item->get_sublist() ) { - int result = center_selection(selection, - item->get_sublist(), - counter); + if( item->sublist_active() ) { + int result = center_selection(selection, item->get_sublist(), counter); if( result ) return result; } } @@ -1943,10 +1934,10 @@ int BC_ListBox::select_rectangle(ArrayList *data, } BC_ListBoxItem *item = data[master_column].values[i]; - if( item->get_sublist() && - item->get_expand() ) + if( item->sublist_active() ) { result |= select_rectangle(item->get_sublist(), x1, y1, x2, y2); + } } return result; } @@ -1985,9 +1976,8 @@ void BC_ListBox::move_selection(ArrayList *dst, continue; } // Descend into sublist - if( item->get_sublist() ) { - move_selection(dst, - item->get_sublist()); + if( item->sublist_active() ) { + move_selection(dst, item->get_sublist()); } ++i; } @@ -2020,11 +2010,8 @@ int BC_ListBox::put_selection(ArrayList *data, } BC_ListBoxItem *item = data[master_column].values[i]; - if( item->get_sublist() ) { - if( put_selection(item->get_sublist(), - src, - destination, - counter) ) + if( item->sublist_active() ) { + if( put_selection(item->get_sublist(), src, destination, counter) ) return 1; } } @@ -2050,10 +2037,8 @@ int BC_ListBox::item_to_index(ArrayList *data, } BC_ListBoxItem *new_item = data[master_column].values[i]; - if( new_item->get_sublist() ) { - if( item_to_index(new_item->get_sublist(), - item, - counter) >= 0 ) + if( new_item->sublist_active() ) { + if( item_to_index(new_item->get_sublist(), item, counter) >= 0 ) return (*counter); } } @@ -2072,7 +2057,7 @@ BC_ListBoxItem* BC_ListBox::index_to_item(ArrayList *data, return data[column].values[i]; } BC_ListBoxItem *item = data[master_column].values[i]; - if( item->get_sublist() ) { + if( item->sublist_active() ) { BC_ListBoxItem *result = index_to_item(item->get_sublist(), number, column, counter); if( result ) return result; @@ -2136,7 +2121,7 @@ int BC_ListBox::get_cursor_item(ArrayList *data, int cursor_x, } // Descend into sublist - if( item->get_sublist() ) { + if( item->sublist_active() ) { if( get_cursor_item(item->get_sublist(), cursor_x, cursor_y, item_return, counter, item->get_expand()) >= 0 ) @@ -2260,7 +2245,7 @@ int BC_ListBox::get_first_selection(ArrayList *data, int *resul BC_ListBoxItem *item = data[master_column].values[i]; (*result)++; if( item->selected ) return (*result); - if( item->get_sublist() ) { + if( item->sublist_active() ) { if( get_first_selection(item->get_sublist(), result) >= 0 ) return (*result); } @@ -2277,7 +2262,7 @@ int BC_ListBox::get_total_items(ArrayList *data, for( int i=0; iget_sublist() ) + if( data[master_column].values[i]->sublist_active() ) get_total_items(data[master_column].values[i]->get_sublist(), result, master_column); @@ -2307,7 +2292,7 @@ int BC_ListBox::get_last_selection(ArrayList *data, return (*result); } - if( item->get_sublist() ) { + if( item->sublist_active() ) { if( get_last_selection(item->get_sublist(), result) >= 0 ) { if( top_level ) return get_total_items(data, 0, master_column) - (*result) /* - 1 */; @@ -2332,7 +2317,7 @@ void BC_ListBox::select_range(ArrayList *data, data[j].values[i]->selected = 1; } BC_ListBoxItem *item = data[master_column].values[i]; - if( item->get_sublist() ) + if( item->sublist_active() ) select_range(item->get_sublist(), start, end, current); } } @@ -2384,7 +2369,7 @@ int BC_ListBox::toggle_item_selection(ArrayList *data, } // Descend into sublist - if( item->get_sublist() ) { + if( item->sublist_active() ) { if( toggle_item_selection(item->get_sublist(), selection_number, counter) ) return 1; @@ -2425,7 +2410,7 @@ void BC_ListBox::set_selected(ArrayList *data, } BC_ListBoxItem *item = data[master_column].values[i]; - if( item->get_sublist() ) { + if( item->sublist_active() ) { set_selected(item->get_sublist(), item_number, value, counter); } } @@ -2452,7 +2437,7 @@ int BC_ListBox::update_selection(ArrayList *data, for( int j=0; jselected = 0; } - if( item->get_sublist() ) + if( item->sublist_active() ) result |= update_selection(item->get_sublist(), selection_number, counter); @@ -2469,7 +2454,7 @@ void BC_ListBox::promote_selections(ArrayList *data, if( item->selected == old_value ) item->selected = new_value; } BC_ListBoxItem *item = data[master_column].values[i]; - if( item->get_sublist() ) + if( item->sublist_active() ) promote_selections(item->get_sublist(), old_value, new_value); } } @@ -3200,6 +3185,7 @@ int BC_ListBox::drag_start_event() { switch( current_operation ) { case SELECT: + if( expander_active() ) break; if( gui && gui->is_event_win() && allow_drag ) { BC_ListBoxItem *item_return = 0; selection_number = get_cursor_item(data, @@ -3473,6 +3459,14 @@ int BC_ListBox::is_active() return active; } +int BC_ListBox::expander_active() +{ + for( int i=0; ivalue ) return 1; + } + return 0 ; +} + int BC_ListBox::keypress_event() { if( !active ) return 0; @@ -3889,7 +3883,7 @@ void BC_ListBox::draw_text_recursive(ArrayList *data, item->set_in_view(0); // Descend into sublist - if( first_item->get_expand() ) { + if( first_item->sublist_active() ) { draw_text_recursive(first_item->get_sublist(), column, indent + LISTBOX_INDENT,