projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add resource wdw folder expanders, fix plugin close deadlock detect
[goodguy/history.git]
/
cinelerra-5.1
/
guicast
/
bclistbox.C
diff --git
a/cinelerra-5.1/guicast/bclistbox.C
b/cinelerra-5.1/guicast/bclistbox.C
index 54bab352a6f7a6b12db02067a4b21c36b5831db3..31bcb1412cf40ad43ef64322f422c2413d0b2eaf 100644
(file)
--- 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
*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);
}
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",
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 ) {
// 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];
// 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);
}
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<BC_ListBoxItem*> *data, int columns,
get_text_mask(item, x, y, w, h);
*result += h;
// Descend into sublist
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:
break;
case LISTBOX_ICONS:
case LISTBOX_ICONS_PACKED:
@@
-1076,7
+1071,7
@@
void BC_ListBox::collapse_recursive(ArrayList<BC_ListBoxItem*> *data,
{
for( int i=0; i<data[master_column].total; ++i ) {
BC_ListBoxItem *item = data[master_column].values[i];
{
for( int i=0; i<data[master_column].total; ++i ) {
BC_ListBoxItem *item = data[master_column].values[i];
- if( item->
get_sublist() && item->expand
) {
+ if( item->
sublist_active()
) {
item->expand = 0;
collapse_recursive(item->get_sublist(), master_column);
}
item->expand = 0;
collapse_recursive(item->get_sublist(), master_column);
}
@@
-1094,7
+1089,7
@@
void BC_ListBox::set_autoplacement(ArrayList<BC_ListBoxItem*> *data,
}
BC_ListBoxItem *item = data[master_column].values[i];
}
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);
}
}
set_autoplacement(item->get_sublist(), do_icons, do_text);
}
}
@@
-1293,7
+1288,7
@@
BC_ListBoxItem* BC_ListBox::get_selection_recursive(ArrayList<BC_ListBoxItem*> *
}
}
}
}
- if( item->
get_sublist
() ) {
+ if( item->
sublist_active
() ) {
BC_ListBoxItem *result = get_selection_recursive(item->get_sublist(),
column,
selection_number);
BC_ListBoxItem *result = get_selection_recursive(item->get_sublist(),
column,
selection_number);
@@
-1326,7
+1321,7
@@
int BC_ListBox::get_selection_number_recursive(ArrayList<BC_ListBoxItem*> *data,
return (*counter);
}
}
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;
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];
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 )
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
}
// 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 ) {
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
}
// 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;
}
}
if( result ) return result;
}
}
@@
-1943,10
+1934,10
@@
int BC_ListBox::select_rectangle(ArrayList<BC_ListBoxItem*> *data,
}
BC_ListBoxItem *item = data[master_column].values[i];
}
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);
result |= select_rectangle(item->get_sublist(),
x1, y1, x2, y2);
+ }
}
return result;
}
}
return result;
}
@@
-1985,9
+1976,8
@@
void BC_ListBox::move_selection(ArrayList<BC_ListBoxItem*> *dst,
continue;
}
// Descend into sublist
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;
}
}
++i;
}
@@
-2020,11
+2010,8
@@
int BC_ListBox::put_selection(ArrayList<BC_ListBoxItem*> *data,
}
BC_ListBoxItem *item = data[master_column].values[i];
}
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;
}
}
return 1;
}
}
@@
-2050,10
+2037,8
@@
int BC_ListBox::item_to_index(ArrayList<BC_ListBoxItem*> *data,
}
BC_ListBoxItem *new_item = data[master_column].values[i];
}
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);
}
}
return (*counter);
}
}
@@
-2072,7
+2057,7
@@
BC_ListBoxItem* BC_ListBox::index_to_item(ArrayList<BC_ListBoxItem*> *data,
return data[column].values[i];
}
BC_ListBoxItem *item = data[master_column].values[i];
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;
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<BC_ListBoxItem*> *data, int cursor_x,
}
// Descend into sublist
}
// 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 )
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<BC_ListBoxItem*> *data, int *resul
BC_ListBoxItem *item = data[master_column].values[i];
(*result)++;
if( item->selected ) return (*result);
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);
}
if( get_first_selection(item->get_sublist(), result) >= 0 )
return (*result);
}
@@
-2277,7
+2262,7
@@
int BC_ListBox::get_total_items(ArrayList<BC_ListBoxItem*> *data,
for( int i=0; i<data[master_column].total; ++i ) {
(*result)++;
for( int i=0; i<data[master_column].total; ++i ) {
(*result)++;
- if( data[master_column].values[i]->
get_sublist
() )
+ if( data[master_column].values[i]->
sublist_active
() )
get_total_items(data[master_column].values[i]->get_sublist(),
result,
master_column);
get_total_items(data[master_column].values[i]->get_sublist(),
result,
master_column);
@@
-2307,7
+2292,7
@@
int BC_ListBox::get_last_selection(ArrayList<BC_ListBoxItem*> *data,
return (*result);
}
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 */;
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<BC_ListBoxItem*> *data,
data[j].values[i]->selected = 1;
}
BC_ListBoxItem *item = data[master_column].values[i];
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);
}
}
select_range(item->get_sublist(), start, end, current);
}
}
@@
-2384,7
+2369,7
@@
int BC_ListBox::toggle_item_selection(ArrayList<BC_ListBoxItem*> *data,
}
// Descend into sublist
}
// Descend into sublist
- if( item->
get_sublist
() ) {
+ if( item->
sublist_active
() ) {
if( toggle_item_selection(item->get_sublist(),
selection_number, counter) )
return 1;
if( toggle_item_selection(item->get_sublist(),
selection_number, counter) )
return 1;
@@
-2425,7
+2410,7
@@
void BC_ListBox::set_selected(ArrayList<BC_ListBoxItem*> *data,
}
BC_ListBoxItem *item = data[master_column].values[i];
}
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);
}
}
set_selected(item->get_sublist(), item_number, value, counter);
}
}
@@
-2452,7
+2437,7
@@
int BC_ListBox::update_selection(ArrayList<BC_ListBoxItem*> *data,
for( int j=0; j<columns; ++j )
data[j].values[i]->selected = 0;
}
for( int j=0; j<columns; ++j )
data[j].values[i]->selected = 0;
}
- if( item->
get_sublist
() )
+ if( item->
sublist_active
() )
result |= update_selection(item->get_sublist(),
selection_number,
counter);
result |= update_selection(item->get_sublist(),
selection_number,
counter);
@@
-2469,7
+2454,7
@@
void BC_ListBox::promote_selections(ArrayList<BC_ListBoxItem*> *data,
if( item->selected == old_value ) item->selected = new_value;
}
BC_ListBoxItem *item = data[master_column].values[i];
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);
}
}
promote_selections(item->get_sublist(), old_value, new_value);
}
}
@@
-3200,6
+3185,7
@@
int BC_ListBox::drag_start_event()
{
switch( current_operation ) {
case SELECT:
{
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,
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;
}
return active;
}
+int BC_ListBox::expander_active()
+{
+ for( int i=0; i<expanders.total; ++i ) {
+ if( expanders.values[i]->value ) return 1;
+ }
+ return 0 ;
+}
+
int BC_ListBox::keypress_event()
{
if( !active ) return 0;
int BC_ListBox::keypress_event()
{
if( !active ) return 0;
@@
-3889,7
+3883,7
@@
void BC_ListBox::draw_text_recursive(ArrayList<BC_ListBoxItem*> *data,
item->set_in_view(0);
// Descend into sublist
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,
draw_text_recursive(first_item->get_sublist(),
column,
indent + LISTBOX_INDENT,