cursor_y < get_item_y(item) + get_item_h(item) ) {
//printf("BC_ListBox::get_cursor_item %d %d %p\n", master_column, i, item);
if( item_return ) (*item_return) = item;
+ if( expanded < 0 ) (*counter) = i;
return (*counter);
}
if( item->sublist_active() ) {
if( get_cursor_item(item->get_sublist(),
cursor_x, cursor_y, item_return, counter,
- item->get_expand()) >= 0 )
+ item->get_expand()) >= 0 ) {
+ if( expanded < 0 ) (*counter) = i;
return (*counter);
+ }
}
}
}
}
// short version
-int BC_ListBox::get_cursor_item()
+int BC_ListBox::get_cursor_item_no()
{
int rx, ry;
gui->get_relative_cursor(rx, ry);
return get_cursor_item(data, rx, ry, 0, 0);
}
+int BC_ListBox::get_cursor_data_item_no(BC_ListBoxItem **item_return)
+{
+ int rx, ry;
+ gui->get_relative_cursor(rx, ry);
+ return get_cursor_item(data, rx, ry, item_return, 0, -1);
+}
+
int BC_ListBox::repeat_event(int64_t duration)
{
switch( current_operation ) {
//printf("BC_ListBox::button_release_event 10\n");
current_operation = NO_OPERATION;
if( gui ) {
- selection_number1 = selection_number = get_cursor_item();
+ selection_number1 = selection_number = get_cursor_item_no();
//printf("BC_ListBox::button_release_event %d %d\n", selection_number2, selection_number1);
}