@Override boolean dragDetect(int x, int y, boolean filter, boolean dragOnTimeout, boolean[] consume) { if (filter && entryHandle != 0) { int [] index = new int [1]; int [] trailing = new int [1]; long /*int*/ layout = OS.gtk_entry_get_layout (entryHandle); OS.pango_layout_xy_to_index (layout, x * OS.PANGO_SCALE, y * OS.PANGO_SCALE, index, trailing); long /*int*/ ptr = OS.pango_layout_get_text (layout); int position = (int)/*64*/OS.g_utf8_pointer_to_offset (ptr, ptr + index[0]) + trailing[0]; int [] start = new int [1]; int [] end = new int [1]; OS.gtk_editable_get_selection_bounds (entryHandle, start, end); if (start [0] <= position && position < end [0]) { if (super.dragDetect (x, y, filter, dragOnTimeout, consume)) { if (consume != null) consume [0] = true; return true; } } return false; } return super.dragDetect (x, y, filter, dragOnTimeout, consume); }
boolean dragDetect(int x, int y, boolean filter, boolean[] consume) { if ((style & SWT.READ_ONLY) == 0) { NSText fieldEditor = ((NSControl)view).currentEditor(); if (fieldEditor != null) { NSRange selectedRange = fieldEditor.selectedRange(); if (selectedRange.length > 0) { NSTextView feAsTextView = new NSTextView(fieldEditor); NSPoint textViewMouse = new NSPoint(); textViewMouse.x = x; textViewMouse.y = y; long /*int*/ charPosition = feAsTextView.characterIndexForInsertionAtPoint(textViewMouse); if (charPosition != OS.NSNotFound && charPosition >= selectedRange.location && charPosition < (selectedRange.location + selectedRange.length)) { if (super.dragDetect(x, y, filter, consume)) { if (consume != null) consume[0] = true; return true; } } } } return false; } return super.dragDetect(x, y, filter, consume); }
@Override boolean dragDetect(int x, int y, boolean filter, boolean dragOnTimeout, boolean[] consume) { if (filter && entryHandle != 0) { int [] index = new int [1]; int [] trailing = new int [1]; int /*long*/ layout = OS.gtk_entry_get_layout (entryHandle); OS.pango_layout_xy_to_index (layout, x * OS.PANGO_SCALE, y * OS.PANGO_SCALE, index, trailing); int /*long*/ ptr = OS.pango_layout_get_text (layout); int position = (int)/*64*/OS.g_utf8_pointer_to_offset (ptr, ptr + index[0]) + trailing[0]; int [] start = new int [1]; int [] end = new int [1]; OS.gtk_editable_get_selection_bounds (entryHandle, start, end); if (start [0] <= position && position < end [0]) { if (super.dragDetect (x, y, filter, dragOnTimeout, consume)) { if (consume != null) consume [0] = true; return true; } } return false; } return super.dragDetect (x, y, filter, dragOnTimeout, consume); }
@Override boolean dragDetect(int x, int y, boolean filter, boolean dragOnTimeout, boolean[] consume) { if (filter && entryHandle != 0) { int [] index = new int [1]; int [] trailing = new int [1]; int /*long*/ layout = OS.gtk_entry_get_layout (entryHandle); OS.pango_layout_xy_to_index (layout, x * OS.PANGO_SCALE, y * OS.PANGO_SCALE, index, trailing); int /*long*/ ptr = OS.pango_layout_get_text (layout); int position = (int)/*64*/OS.g_utf8_pointer_to_offset (ptr, ptr + index[0]) + trailing[0]; int [] start = new int [1]; int [] end = new int [1]; OS.gtk_editable_get_selection_bounds (entryHandle, start, end); if (start [0] <= position && position < end [0]) { if (super.dragDetect (x, y, filter, dragOnTimeout, consume)) { if (consume != null) consume [0] = true; return true; } } return false; } return super.dragDetect (x, y, filter, dragOnTimeout, consume); }
@Override boolean dragDetect (int /*long*/ hwnd, int x, int y, boolean filter, boolean [] detect, boolean [] consume) { if (filter && (style & SWT.READ_ONLY) == 0) { int /*long*/ hwndText = OS.GetDlgItem (handle, CBID_EDIT); if (hwndText != 0) { int [] start = new int [1], end = new int [1]; OS.SendMessage (handle, OS.CB_GETEDITSEL, start, end); if (start [0] != end [0]) { int /*long*/ lParam = OS.MAKELPARAM (x, y); int position = OS.LOWORD (OS.SendMessage (hwndText, OS.EM_CHARFROMPOS, 0, lParam)); if (start [0] <= position && position < end [0]) { if (super.dragDetect (hwnd, x, y, filter, detect, consume)) { if (consume != null) consume [0] = true; return true; } } } return false; } } return super.dragDetect (hwnd, x, y, filter, detect, consume); }
@Override boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) { boolean selected = false; if (filter) { long /*int*/ [] path = new long /*int*/ [1]; if (OS.gtk_tree_view_get_path_at_pos (handle, x, y, path, null, null, null)) { if (path [0] != 0) { long /*int*/ selection = OS.gtk_tree_view_get_selection (handle); if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) selected = true; OS.gtk_tree_path_free (path [0]); } } else { return false; } } boolean dragDetect = super.dragDetect (x, y, filter, false, consume); if (dragDetect && selected && consume != null) consume [0] = true; return dragDetect; }
@Override boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) { boolean selected = false; if (filter) { int /*long*/ [] path = new int /*long*/ [1]; if (OS.gtk_tree_view_get_path_at_pos (handle, x, y, path, null, null, null)) { if (path [0] != 0) { int /*long*/ selection = OS.gtk_tree_view_get_selection (handle); if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) selected = true; OS.gtk_tree_path_free (path [0]); } } else { return false; } } boolean dragDetect = super.dragDetect (x, y, filter, false, consume); if (dragDetect && selected && consume != null) consume [0] = true; return dragDetect; }
@Override boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) { boolean selected = false; if (filter) { long /*int*/ [] path = new long /*int*/ [1]; if (OS.gtk_tree_view_get_path_at_pos (handle, x, y, path, null, null, null)) { if (path [0] != 0) { long /*int*/ selection = OS.gtk_tree_view_get_selection (handle); if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) selected = true; OS.gtk_tree_path_free (path [0]); } } else { return false; } } boolean dragDetect = super.dragDetect (x, y, filter, false, consume); if (dragDetect && selected && consume != null) consume [0] = true; return dragDetect; }
@Override boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) { boolean selected = false; if (filter) { int /*long*/ [] path = new int /*long*/ [1]; if (OS.gtk_tree_view_get_path_at_pos (handle, x, y, path, null, null, null)) { if (path [0] != 0) { int /*long*/ selection = OS.gtk_tree_view_get_selection (handle); if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) selected = true; OS.gtk_tree_path_free (path [0]); } } else { return false; } } boolean dragDetect = super.dragDetect (x, y, filter, false, consume); if (dragDetect && selected && consume != null) consume [0] = true; return dragDetect; }
@Override boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) { boolean selected = false; if (filter) { int /*long*/ [] path = new int /*long*/ [1]; if (OS.gtk_tree_view_get_path_at_pos (handle, x, y, path, null, null, null)) { if (path [0] != 0) { int /*long*/ selection = OS.gtk_tree_view_get_selection (handle); if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) selected = true; OS.gtk_tree_path_free (path [0]); } } else { return false; } } boolean dragDetect = super.dragDetect (x, y, filter, false, consume); if (dragDetect && selected && consume != null) consume [0] = true; return dragDetect; }
@Override boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) { boolean selected = false; if (filter) { int /*long*/ [] path = new int /*long*/ [1]; if (OS.gtk_tree_view_get_path_at_pos (handle, x, y, path, null, null, null)) { if (path [0] != 0) { int /*long*/ selection = OS.gtk_tree_view_get_selection (handle); if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) selected = true; OS.gtk_tree_path_free (path [0]); } } else { return false; } } boolean dragDetect = super.dragDetect (x, y, filter, false, consume); if (dragDetect && selected && consume != null) consume [0] = true; return dragDetect; }