setScrollWidth (tree_column, iter);
setScrollWidth (tree_column, item);
int /*long*/ cellDataProc (int /*long*/ tree_column, int /*long*/ cell, int /*long*/ tree_model, int /*long*/ iter, int /*long*/ data) {	if (cell == ignoreCell) return 0;	TreeItem item = _getItem (iter);	if (item != null) OS.g_object_set_qdata (cell, Display.SWT_OBJECT_INDEX2, item.handle);	boolean isPixbuf = OS.GTK_IS_CELL_RENDERER_PIXBUF (cell);	if (!(isPixbuf || OS.GTK_IS_CELL_RENDERER_TEXT (cell))) return 0;	int modelIndex = -1;	boolean customDraw = false;	if (columnCount == 0) {		modelIndex = Tree.FIRST_COLUMN;		customDraw = firstCustomDraw;	} else {		TreeColumn column = (TreeColumn) display.getWidget (tree_column);		if (column != null) {			modelIndex = column.modelIndex;			customDraw = column.customDraw;		}	}	if (modelIndex == -1) return 0;	boolean setData = false;	if ((style & SWT.VIRTUAL) != 0) {		/*		* Feature in GTK.  On GTK before 2.4, fixed_height_mode is not		* supported, and the tree asks for the data of all items.  The		* fix is to only provide the data if the row is visible.		*/		if (OS.GTK_VERSION < OS.VERSION (2, 3, 2)) {			int /*long*/ path = OS.gtk_tree_model_get_path (tree_model, iter);			OS.gtk_widget_realize (handle);			GdkRectangle visible = new GdkRectangle ();			OS.gtk_tree_view_get_visible_rect (handle, visible);			GdkRectangle area = new GdkRectangle ();			OS.gtk_tree_view_get_cell_area (handle, path, tree_column, area);			OS.gtk_tree_path_free (path);						if (area.y + area.height < 0 || area.y + visible.y > visible.y + visible.height ) {				return 0;			}		}		if (!item.cached) {			//lastIndexOf = index [0];			setData = checkData (item);		}	}	int /*long*/ [] ptr = new int /*long*/ [1];	if (setData) {		if (isPixbuf) {			ptr [0] = 0;			OS.gtk_tree_model_get (tree_model, iter, modelIndex + CELL_PIXBUF, ptr, -1);			OS.g_object_set (cell, OS.pixbuf, ptr[0], 0);		} else {			ptr [0] = 0;			OS.gtk_tree_model_get (tree_model, iter, modelIndex + CELL_TEXT, ptr, -1); 			if (ptr [0] != 0) {				OS.g_object_set (cell, OS.text, ptr[0], 0);				OS.g_free (ptr[0]);			}		}	}	if (customDraw) {		/*		 * Bug on GTK. Gtk renders the background on top of the checkbox and pixbuf.		 * This only happens in version 2.2.1 and earlier. The fix is not to set the background.   		 */		if (OS.GTK_VERSION > OS.VERSION (2, 2, 1)) {			ptr [0] = 0;			OS.gtk_tree_model_get (tree_model, iter, modelIndex + CELL_BACKGROUND, ptr, -1);			if (ptr [0] != 0) {				OS.g_object_set (cell, OS.cell_background_gdk, ptr[0], 0);			}		}		if (!isPixbuf) {			ptr [0] = 0;			OS.gtk_tree_model_get (tree_model, iter, modelIndex + CELL_FOREGROUND, ptr, -1);			if (ptr [0] != 0) {				OS.g_object_set (cell, OS.foreground_gdk, ptr[0], 0);			}			ptr [0] = 0;			OS.gtk_tree_model_get (tree_model, iter, modelIndex + CELL_FONT, ptr, -1);			if (ptr [0] != 0) {				OS.g_object_set (cell, OS.font_desc, ptr[0], 0);			}		}	}	if (setData) {		ignoreCell = cell;		setScrollWidth (tree_column, iter);		ignoreCell = 0;	}	return 0;}