if ((style&SWT.CHECK) != 0) { GtkCList clist = new GtkCList (); OS.memmove(clist, handle, GtkCList.sizeof); int clientX = where.x; int clientY = where.y - clist.column_title_area_height; if (clientY <= 0) return 1; int[] row = new int[1], column = new int[1]; row[0] = -1; OS.gtk_clist_get_selection_info(handle, clientX, clientY, row, column); if (row[0] == -1) return -1; int leftmost = 2; if (clientX < leftmost) return 1; if (clientX > leftmost+check_width) return 1;  TableItem item = items [row[0]]; item._setChecked(!item._getChecked()); Event event = new Event (); event.detail = SWT.CHECK; event.item = item; postEvent (SWT.Selection, event); }
int processMouseDown (int callData, int arg1, int int2) {	OS.gtk_widget_grab_focus(handle);		// First, see if we have a single or double click	GdkEventButton gdkEvent = new GdkEventButton ();	OS.memmove (gdkEvent, callData, GdkEventButton.sizeof);	boolean isDoubleClick = (gdkEvent.type == OS.GDK_2BUTTON_PRESS);		// We can't just use the x and y coordinates from the Gdk event,	// because the actual items are drawn on a special X window	Point where = _gdkWindowGetPointer();	int eventType;	if (isDoubleClick) {		eventType = SWT.MouseDoubleClick;		Event event = new Event ();		event.item=itemBeingSelected;		event.x = where.x; event.y = where.y;			sendEvent (SWT.DefaultSelection, event);		return 1;	}		eventType = SWT.MouseDown;	sendMouseEvent (eventType, gdkEvent.button, gdkEvent.state, gdkEvent.time, where.x, where.y);	if (gdkEvent.button == 3 && menu != null) menu.setVisible (true);	return 1;}