yscrollbar = 0;
current_cursor = ARROW_CURSOR;
gui = 0;
- view_h = 0;
- view_w = 0;
+ view_w = items_w = 0;
+ view_h = items_h = 0;
title_h = 0;
active = 0;
is_suggestions = 0;
bg_tile = 0;
bg_draw = 1;
drag_popup = 0;
+ dragged_title = 0;
selection_number1 = -1;
selection_number2 = -1;
bg_surface = 0;
bg_pixmap = 0;
row_height = row_ascent = row_descent = 0;
-
+ selection_start = 0;
+ selection_center = 0;
+ selection_end = -1;
+ selection_number = -1;
current_operation = NO_OPERATION;
button_highlighted = 0;
+ button_releases = 0;
list_highlighted = 0;
disabled = 0;
+ scroll_repeat = 0;
allow_drag_scroll = 1;
process_drag = 1;
+ for( int i=0; i<32; ++i ) default_column_width[i] = 0;
sort_column = -1;
sort_order = 0;
drag_icon_vframe = 0;
drag_column_icon_vframe = 0;
-
-
+ drag_cursor_x = 0;
+ drag_column_w = 0;
+ temp_display_format = display_format;
+ rect_x1 = rect_x2 = 0;
+ rect_y1 = rect_y2 = 0;
// reset the search engine
//printf("BC_ListBox::BC_ListBox 4\n");
{
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)
{
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 ) {
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,
case SELECT_RECT:
- unset_repeat(get_resources()->scroll_repeat);
if( data ) {
// Demote selections from rectangle selection
promote_selections(data, 2, 1);
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);
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);
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;
}
}
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 &&
break;
default:
- if( !ctrl_down() ) {
+ if( show_query && !ctrl_down() ) {
int query_len = strlen(query);
if( query_len < (int)sizeof(query)-1 &&
top_level->get_keypress() > 30 &&
if( query_len > 0 ) query[--query_len] = 0;
new_selection = query_list();
}
- if( show_query ) {
- if( query_len > 0 )
- show_tooltip(query);
- else
- hide_tooltip();
- }
+ if( query_len > 0 )
+ show_tooltip(query);
+ else
+ hide_tooltip();
redraw = 1;
result = 1;
}