PageRenderTime 70ms CodeModel.GetById 25ms app.highlight 22ms RepoModel.GetById 2ms app.codeStats 2ms

/src/wrappers/gtk/library/gtk_tree_view.e

http://github.com/tybor/Liberty
Specman e | 1487 lines | 359 code | 272 blank | 856 comment | 14 complexity | fccf372578bd2f45e8125d1ba7ce04b4 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1indexing
   2	description: "GtkTreeView A widget for displaying both trees and lists."
   3	copyright: "[
   4					Copyright (C) 2006 eiffel-libraries team, GTK+ team
   5					
   6					This library is free software; you can redistribute it and/or
   7					modify it under the terms of the GNU Lesser General Public License
   8					as published by the Free Software Foundation; either version 2.1 of
   9					the License, or (at your option) any later version.
  10					
  11					This library is distributed in the hope that it will be useful, but
  12					WITHOUT ANY WARRANTY; without even the implied warranty of
  13					MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14					Lesser General Public License for more details.
  15
  16					You should have received a copy of the GNU Lesser General Public
  17					License along with this library; if not, write to the Free Software
  18					Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  19					02110-1301 USA
  20				]"
  21	date: "$Date:$"
  22	revision: "$Revision:$"
  23
  24class GTK_TREE_VIEW
  25inherit
  26	GTK_CONTAINER
  27
  28		-- GtkTreeView implements AtkImplementorIface.
  29insert
  30	GTK_TREE_VIEW_EXTERNALS
  31	GTK_TREE_VIEW_DROP_POSITION
  32
  33creation make, with_model, from_external_pointer
  34
  35feature {} -- Creation
  36	make is
  37			-- Creates a new GtkTreeView widget.
  38		require gtk_initialized: gtk.is_initialized
  39		do
  40			from_external_pointer (gtk_tree_view_new)
  41		end
  42
  43	with_model (a_model: GTK_TREE_MODEL) is
  44			-- Creates a new GtkTreeView widget with the model initialized to `a_model'.
  45		require
  46			gtk_initialized: gtk.is_initialized
  47			valid_model: a_model /= Void
  48		do
  49			from_external_pointer (gtk_tree_view_new_with_model (a_model.handle))
  50		end
  51
  52feature
  53	model: GTK_TREE_MODEL is
  54			-- The model the GtkTreeView is based on. Void if the model
  55			-- is unset.
  56		local model_factory: G_OBJECT_EXPANDED_FACTORY [GTK_TREE_MODEL]
  57		do
  58			Result := model_factory.wrapper_or_void(gtk_tree_view_get_model (handle))
  59		end
  60
  61	set_model (a_model: GTK_TREE_MODEL) is
  62			-- Sets the model for a GtkTreeView. If the tree view already
  63			-- has a model set, it will remove it before setting the new
  64			-- model. 
  65		require valid_model: a_model /= Void
  66		do
  67			gtk_tree_view_set_model (handle, a_model.handle)
  68		end
  69
  70	unset_model  is
  71			-- Unset the old model.
  72		do
  73			gtk_tree_view_set_model (handle, default_pointer)
  74		end
  75
  76feature
  77	selection: GTK_TREE_SELECTION is
  78			-- the GtkTreeSelection associated with tree view.
  79		local factory: G_OBJECT_EXPANDED_FACTORY[GTK_TREE_SELECTION]
  80		do
  81			Result := factory.wrapper(gtk_tree_view_get_selection (handle))
  82		end
  83
  84	hadjustment: GTK_ADJUSTMENT is
  85			-- the GtkAdjustment currently being used for the horizontal
  86			-- aspect or Void if none is currently being used.
  87		local factory: G_OBJECT_EXPANDED_FACTORY[GTK_ADJUSTMENT]
  88		do
  89			Result := factory.wrapper(gtk_tree_view_get_hadjustment (handle))
  90		end
  91
  92	set_hadjustment (an_adjustment: GTK_ADJUSTMENT) is
  93			-- Sets the GtkAdjustment for the current orizontal aspect.
  94		require valid_adjustment: an_adjustment/=Void
  95		do
  96			gtk_tree_view_set_hadjustment   (handle, an_adjustment.handle)
  97		end
  98	
  99	unset_hadjustment  is
 100			-- Unsets the GtkAdjustment for the current orizontal aspect.
 101		do
 102			gtk_tree_view_set_hadjustment   (handle, default_pointer)
 103		end
 104	
 105
 106	vadjustment: GTK_ADJUSTMENT is
 107			-- Gets the GtkAdjustment currently being used for the
 108			-- vertical aspect or Void if none is currently being used.
 109		local factory: G_OBJECT_EXPANDED_FACTORY[GTK_ADJUSTMENT]
 110		do
 111			Result := factory.wrapper(gtk_tree_view_get_vadjustment (handle))
 112		end
 113
 114	set_vadjustment (an_adjustment: GTK_ADJUSTMENT) is
 115			-- Sets the GtkAdjustment for the current vertical aspect.
 116		require valid_adjustment: an_adjustment/=Void
 117		do
 118			gtk_tree_view_set_vadjustment   (handle, an_adjustment.handle)
 119		end
 120	
 121	unset_vadjustment  is
 122			-- Unsets the GtkAdjustment for the current vertical aspect.
 123		do
 124			gtk_tree_view_set_vadjustment   (handle, default_pointer)
 125		end
 126	
 127	are_headers_visible: BOOLEAN is
 128			-- Are the headers on the tree view visible?
 129		do
 130			Result := gtk_tree_view_get_headers_visible(handle).to_boolean
 131		end
 132
 133	set_headers_visible is
 134			-- Makes the headers are visible
 135		do
 136			gtk_tree_view_set_headers_visible (handle,1)
 137		ensure are_headers_visible
 138		end
 139
 140	set_headers_invisible is
 141			-- Makes the headers are invisible
 142		do
 143			gtk_tree_view_set_headers_visible (handle,0)
 144		ensure not are_headers_visible
 145		end
 146
 147	columns_autosize is
 148			-- Resizes all columns to their optimal width. Only works
 149			-- after the treeview has been realized.
 150		do
 151			gtk_tree_view_columns_autosize  (handle)
 152		end
 153
 154	set_headers_clickable is
 155			-- Allow the column title buttons to be clicked.
 156		do
 157			gtk_tree_view_set_headers_clickable (handle,1)
 158		end
 159
 160	set_headers_unclickable is
 161			-- Forbid the column title buttons to be clicked.
 162		do
 163			gtk_tree_view_set_headers_clickable (handle,0)
 164		end
 165
 166	--TODO: set_rules_hint ()
 167
 168	-- void        gtk_tree_view_set_rules_hint    (GtkTreeView *tree_view,
 169	--                                              gboolean setting);
 170	
 171	-- This function tells GTK+ that the user interface for your
 172	-- application requires users to read across tree rows and
 173	-- associate cells with one another. By default, GTK+ will then
 174	-- render the tree with alternating row colors. Do not use it just
 175	-- because you prefer the appearance of the ruled tree; that's a
 176	-- question for the theme. Some themes will draw tree rows in
 177	-- alternating colors even when rules are turned off, and users who
 178	-- prefer that appearance all the time can choose those themes. You
 179	-- should call this function only as a semantic hint to the theme
 180	-- engine that your tree makes alternating colors useful from a
 181	-- functional standpoint (since it has lots of columns, generally).
 182
 183	-- tree_view : 	a GtkTreeView
 184	-- setting : 	TRUE if the tree requires reading across rows
 185
 186	-- TODO: gtk_tree_view_get_rules_hint ()
 187
 188	-- gboolean    gtk_tree_view_get_rules_hint    (GtkTreeView *tree_view);
 189	
 190	-- Gets the setting set by gtk_tree_view_set_rules_hint().
 191	
 192	-- tree_view : 	a GtkTreeView
 193	-- Returns : 	TRUE if rules are useful for the user of this tree
 194
 195	columns_number: INTEGER
 196			-- Number of columns of Current GTK_TREE_VIEW
 197	
 198	append_column (a_column: GTK_TREE_VIEW_COLUMN) is
 199			-- Appends column to the list of columns. If tree view has
 200			-- "fixed_height" mode enabled, then column must have its
 201			-- "sizing" property set to be GTK_TREE_VIEW_COLUMN_FIXED.
 202		require
 203			valid_column: a_column/=Void
 204			-- TODO: fixed_height_requirements: is_height_fixed implies a_column.is_sizing_fixed
 205		do
 206			columns_number := gtk_tree_view_append_column (handle, a_column.handle)
 207		end
 208
 209	remove_column  (a_column: GTK_TREE_VIEW_COLUMN) is
 210			-- Removes `a_column' from tree view.
 211		require
 212			valid_column: a_column/=Void
 213		do
 214			columns_number := gtk_tree_view_remove_column (handle, a_column.handle)
 215		end
 216
 217	insert_column (a_column: GTK_TREE_VIEW_COLUMN; a_position: INTEGER) is
 218			-- This inserts `a_column' into the tree view at `a_position'. If
 219			-- position is -1, then the column is inserted at the end. If
 220			-- tree_view has "fixed_height" mode enabled, then column
 221			-- must have its "sizing" property set to be
 222			-- GTK_TREE_VIEW_COLUMN_FIXED.
 223		require
 224			valid_column: a_column /= Void
 225			valid_position: a_position >= -1
 226		do
 227			columns_number := gtk_tree_view_insert_column (handle,a_column.handle,a_position)
 228		end
 229	
 230	-- Note: gtk_tree_view_insert_column_with_attributes () unwrappable since variadic.
 231	
 232	-- TODO: Provide a feature equivalent to gtk_tree_view_insert_column_with_attributes
 233	
 234	-- gint        gtk_tree_view_insert_column_with_attributes
 235	--                                             (GtkTreeView *tree_view,
 236	--                                              gint position,
 237	--                                              const gchar *title,
 238	--                                              GtkCellRenderer *cell,
 239	--                                              ...);
 240	
 241	-- Creates a new GtkTreeViewColumn and inserts it into the tree_view at position. If position is -1, then the newly created column is inserted at the end. The column is initialized with the attributes given. If tree_view has "fixed_height" mode enabled, then column must have its sizing property set to be GTK_TREE_VIEW_COLUMN_FIXED.
 242	
 243	-- tree_view : 	A GtkTreeView
 244	-- position : 	The position to insert the new column in.
 245	-- title : 	The title to set the header to.
 246	-- cell : 	The GtkCellRenderer.
 247	-- ... : 	A NULL-terminated list of attributes.
 248	-- Returns : 	The number of columns in tree_view after insertion.
 249
 250	-- TODO wrap gtk_tree_view_insert_column_with_data_func ()
 251	
 252	-- gint gtk_tree_view_insert_column_with_data_func (GtkTreeView
 253	-- *tree_view, gint position, const gchar *title, GtkCellRenderer
 254	-- *cell, GtkTreeCellDataFunc func, gpointer data, GDestroyNotify
 255	-- dnotify);
 256
 257	-- Convenience function that inserts a new column into the
 258	-- GtkTreeView with the given cell renderer and a GtkCellDataFunc
 259	-- to set cell renderer attributes (normally using data from the
 260	-- model). See also gtk_tree_view_column_set_cell_data_func(),
 261	-- gtk_tree_view_column_pack_start(). If tree_view has
 262	-- "fixed_height" mode enabled, then column must have its "sizing"
 263	-- property set to be GTK_TREE_VIEW_COLUMN_FIXED.
 264
 265	-- tree_view : 	a GtkTreeView
 266	-- position : 	Position to insert, -1 for append
 267	-- title : 	column title
 268	-- cell : 	cell renderer for column
 269	-- func : 	function to set attributes of cell renderer
 270	-- data : 	data for func
 271	-- dnotify : 	destroy notifier for data
 272	-- Returns : 	number of columns in the tree view post-insert
 273	
 274	column (a_position: INTEGER): GTK_TREE_VIEW_COLUMN is
 275			-- the GtkTreeViewColumn at the given `a_position' in the tree view.
 276		require valid_number: a_position.in_range(0,columns.count)
 277		local ptr: POINTER
 278		do
 279			create Result.from_external_pointer (gtk_tree_view_get_column (handle, a_position))
 280		end
 281
 282	columns: G_LIST[GTK_TREE_VIEW_COLUMN] is
 283			-- a GList of all the GtkTreeViewColumn s currently in tree view.
 284		do
 285			create {G_OBJECT_LIST[GTK_TREE_VIEW_COLUMN]}
 286			Result.from_external_pointer(gtk_tree_view_get_columns(handle))
 287			-- Note: The returned list must be freed with g_list_free().
 288		end
 289
 290	move_column_after (a_column, a_base: GTK_TREE_VIEW_COLUMN) is
 291			-- Moves `a_column' to be after to `a_base' column. If
 292			-- `a_base' is Void, then column is placed in the first
 293			-- position.
 294		require valid_column: a_column/=Void
 295		do
 296			if a_base /= Void then
 297				gtk_tree_view_move_column_after (handle, a_column.handle, a_base.handle)
 298			else
 299				gtk_tree_view_move_column_after (handle, a_column.handle, default_pointer)
 300			end
 301		end
 302
 303	set_expander_column (a_column: GTK_TREE_VIEW_COLUMN) is
 304			-- Sets the column to draw the expander arrow at. It must be
 305			-- in tree view. If `a_column' is Void, then the expander
 306			-- arrow is always at the first visible column.
 307
 308			-- If you do not want expander arrow to appear in your tree,
 309			-- set the expander column to a hidden column.
 310		do
 311			if a_column = Void then
 312				gtk_tree_view_set_expander_column (handle, default_pointer)
 313			else
 314				gtk_tree_view_set_expander_column (handle, a_column.handle)
 315			end
 316		end
 317
 318	expander_column: GTK_TREE_VIEW_COLUMN is
 319			--  the column that is the current expander column. This
 320			--  column has the expander arrow drawn next to it.
 321		do
 322			create Result.from_external_pointer (gtk_tree_view_get_expander_column (handle))
 323		end
 324	
 325	-- TODO: wrap gtk_tree_view_set_column_drag_function ()
 326
 327	-- void gtk_tree_view_set_column_drag_function (GtkTreeView
 328	-- *tree_view, GtkTreeViewColumnDropFunc func, gpointer user_data,
 329	-- GtkDestroyNotify destroy);
 330
 331	-- Sets a user function for determining where a column may be
 332	-- dropped when dragged. This function is called on every column
 333	-- pair in turn at the beginning of a column drag to determine
 334	-- where a drop can take place. The arguments passed to func are:
 335	-- the tree_view, the GtkTreeViewColumn being dragged, the two
 336	-- GtkTreeViewColumn s determining the drop spot, and user_data. If
 337	-- either of the GtkTreeViewColumn arguments for the drop spot are
 338	-- NULL, then they indicate an edge. If func is set to be NULL,
 339	-- then tree_view reverts to the default behavior of allowing all
 340	-- columns to be dropped everywhere.
 341
 342	-- tree_view : 	A GtkTreeView.
 343	-- func : 	A function to determine which columns are reorderable, or NULL.
 344	-- user_data : 	User data to be passed to func, or NULL
 345	-- destroy : 	Destroy notifier for user_data, or NULL
 346
 347	scroll_to_point (an_x, an_y: INTEGER) is
 348			-- Scrolls the tree view such that the top-left corner of the
 349			-- visible area is `an_x', `an_y', where `an_x' and `an_y'
 350			-- are specified in tree window coordinates. The tree_view
 351			-- must be realized before this function is called. If it
 352			-- isn't, you probably want to be using `scroll_to_cell'.
 353			
 354			-- If either `an_x' or `an_y' are -1, then that direction isn't scrolled.
 355		do
 356			gtk_tree_view_scroll_to_point   (handle, an_x, an_y)
 357		end
 358
 359	scroll_to_cell (a_path: GTK_TREE_PATH; a_column: GTK_TREE_VIEW_COLUMN;
 360						 use_align: BOOLEAN; row_align, col_align: REAL_32) is
 361			-- Moves the alignments of tree view to the position
 362			-- specified by `a_column' and `a_path'. If `a_column' is
 363			-- Void, then no horizontal scrolling occurs. Likewise, if
 364			-- `a_path' is Void no vertical scrolling occurs. At a
 365			-- minimum, one of `a_column' or `a_path' need to be
 366			-- non-Void. `row_align' determines where the row is placed,
 367			-- and `col_align' determines where `a_column' is
 368			-- placed. Both are expected to be between 0.0 and 1.0. 0.0
 369			-- means left/top alignment, 1.0 means right/bottom
 370			-- alignment, 0.5 means center.
 371			
 372			-- If `use_align' is False, then the alignment arguments are
 373			-- ignored, and the tree does the minimum amount of work to
 374			-- scroll the cell onto the screen. This means that the cell
 375			-- will be scrolled to the edge closest to its current
 376			-- position. If the cell is currently visible on the screen,
 377			-- nothing is done.
 378			
 379			-- This function only works if the model is set, and `a_path'
 380			-- is a valid row on the model. If the model changes before
 381			-- the tree_view is realized, the centered `a_path' will be
 382			-- modified to reflect this change.
 383			
 384			-- `a_path' : 	The path of the row to move to, or Void.
 385			-- `a_column' : 	The GtkTreeViewColumn to move horizontally to, or Void.
 386			-- `use_align' : 	whether to use alignment arguments, or FALSE.
 387			-- `row_align' : 	The vertical alignment of the row specified by path.
 388			-- `col_align' : 	The horizontal alignment of the column specified by column.
 389		require
 390			either_column_or_path_not_void: a_column/=Void or a_path/=Void
 391			valid_row_align: row_align.in_range ({REAL_32 0.0}, {REAL_32 1.0})
 392			valid_col_align: col_align.in_range ({REAL_32 0.0}, {REAL_32 1.0})
 393		local
 394			column_ptr, path_ptr: POINTER
 395		do
 396			if a_column /= Void then column_ptr := a_column.handle end
 397			if a_path /= Void then path_ptr := a_path.handle end
 398			
 399			gtk_tree_view_scroll_to_cell (handle, path_ptr, column_ptr,
 400													use_align.to_integer, row_align, col_align)
 401		end
 402
 403	set_cursor (a_path: GTK_TREE_PATH; a_focus_column: GTK_TREE_VIEW_COLUMN; start_editing: BOOLEAN) is
 404			-- Sets the current keyboard focus to be at `a_path', and
 405			-- selects it. This is useful when you want to focus the
 406			-- user's attention on a particular row. If `a_focus_column'
 407			-- is not Void, then focus is given to the column specified
 408			-- by it. Additionally, if `a_focus_column' is specified, and
 409			-- `start_editing' is TRUE, then editing should be started in
 410			-- the specified cell. This function is often followed by
 411			-- gtk_widget_grab_focus (tree_view) in order to give
 412			-- keyboard focus to the widget. Please note that editing can
 413			-- only happen when the widget is realized.
 414			
 415			-- `a_path' : 	A GtkTreePath
 416			-- `a_focus_column' : 	A GtkTreeViewColumn, or Void
 417			-- `start_editing' : 	TRUE if the specified cell should start being edited.
 418		require valid_path: a_path /= Void
 419		do
 420			if a_focus_column=Void then
 421				gtk_tree_view_set_cursor (handle, a_path.handle,
 422												  default_pointer, start_editing.to_integer)
 423			else
 424				gtk_tree_view_set_cursor (handle, a_path.handle,
 425												  a_focus_column.handle, start_editing.to_integer)
 426			end
 427		end
 428
 429	set_cursor_on_cell (a_path: GTK_TREE_PATH; a_focus_column: GTK_TREE_VIEW_COLUMN;
 430							a_focus_cell: GTK_CELL_RENDERER; start_editing: BOOLEAN) is
 431			-- Sets the current keyboard focus to be at `a_path', and selects
 432			-- it. This is useful when you want to focus the user's
 433			-- attention on a particular row. If `a_focus_column' is not
 434			-- Void, then focus is given to the column specified by
 435			-- it. If `a_focus_column' and `a_focus_cell' are not Void, and
 436			-- `a_focus_column' contains 2 or more editable or activatable
 437			-- cells, then focus is given to the cell specified by
 438			-- `a_focus_cell'. Additionally, if `a_focus_column' is specified,
 439			-- and `start_editing' is TRUE, then editing should be started
 440			-- in the specified cell. This function is often followed by
 441			-- gtk_widget_grab_focus (tree_view) in order to give
 442			-- keyboard focus to the widget. Please note that editing can
 443			-- only happen when the widget is realized.
 444
 445			-- tree_view : 	A GtkTreeView
 446			-- `a_path' : 	A GtkTreePath
 447			-- `a_focus_column' : 	A GtkTreeViewColumn, or Void
 448			-- `a_focus_cell' : 	A GtkCellRenderer, or Void
 449			-- `start_editing' : 	TRUE if the specified cell should start being edited.
 450		require valid_path: a_path /= Void
 451		local column_ptr,cell_ptr: POINTER
 452		do
 453			if a_focus_column/=Void then column_ptr := a_focus_column.handle end
 454			if a_focus_cell/=Void then cell_ptr := a_focus_cell.handle end
 455			
 456			gtk_tree_view_set_cursor_on_cell (handle, a_path.handle, column_ptr, cell_ptr,
 457														 start_editing.to_integer)
 458		end
 459
 460	cursor: TUPLE[GTK_TREE_PATH, GTK_TREE_VIEW_COLUMN] is
 461			-- The path and focus column with the current path and focus column. If the cursor isn't currently set, then path will be Void. If no column currently has focus, then the column will be Void.
 462		local
 463			path_ptr, column_ptr: POINTER;
 464			a_path: GTK_TREE_PATH;
 465			a_column: GTK_TREE_VIEW_COLUMN
 466		do
 467			gtk_tree_view_get_cursor (handle, $path_ptr, $column_ptr)
 468			if path_ptr.is_not_null then  create a_path.from_external_pointer(path_ptr) end
 469			if column_ptr.is_not_null then create a_column.secondary_wrapper_from(column_ptr) end
 470			create Result.make_2 (a_path, a_column)
 471		ensure
 472			Result /= Void
 473			Result.first /= Void implies Result.first.is_not_null
 474			Result.second /= Void implies Result.second.is_not_null
 475		end
 476
 477	row_expanded (a_path: GTK_TREE_PATH): BOOLEAN is
 478			-- Returns True if the node pointed to by `a_path' is expanded in Current.
 479		require
 480			a_path /= Void
 481		do
 482			Result := gtk_tree_view_row_expanded (handle, a_path.handle).to_boolean
 483		end
 484
 485	expand_row (a_path: GTK_TREE_PATH; open_all: BOOLEAN): BOOLEAN is
 486			-- Opens the row so its children are visible.
 487			-- `open_all' indicates whether to recursively expand, or
 488			-- just expand immediate children
 489			-- Returns True if the row existed and had children
 490		require
 491			a_path /= Void
 492		do
 493			Result := gtk_tree_view_expand_row(handle, a_path.handle, open_all.to_integer) > 0
 494		end
 495
 496	collapse_row (a_path: GTK_TREE_PATH): BOOLEAN is
 497			-- Collapses a row (hides its child rows, if they exist).
 498			-- Returns True if the row was collapsed.
 499		require
 500			a_path /= Void
 501		do
 502			Result := gtk_tree_view_collapse_row(handle, a_path.handle) > 0
 503		end
 504
 505	expand_all is
 506			-- Recursively expands all nodes in the tree view.
 507		do
 508			gtk_tree_view_expand_all(handle)
 509		end
 510
 511	collapse_all is
 512			-- Recursively collapses all visible, expanded nodes in tree view.
 513		do
 514			gtk_tree_view_collapse_all(handle)
 515		end
 516
 517	expand_to_path (a_path: GTK_TREE_PATH) is
 518			-- Expands the row at `a_path'. This will also expand all parent rows of path as necessary.
 519			-- Since 2.2
 520		require
 521			a_path /= Void
 522		do
 523			gtk_tree_view_expand_to_path (handle, a_path.handle)
 524		end
 525
 526	-- gtk_tree_view_map_expanded_rows ()
 527
 528	-- void        gtk_tree_view_map_expanded_rows (GtkTreeView *tree_view,
 529	--                                              GtkTreeViewMappingFunc func,
 530	--                                              gpointer data);
 531
 532	-- Calls func on all expanded rows.
 533
 534	-- tree_view : 	A GtkTreeView
 535	-- func : 	A function to be called
 536	-- data : 	User data to be passed to the function.
 537
 538	set_reorderable(a_reorderable: BOOLEAN) is
 539			-- This function is a convenience function to allow you to
 540			-- reorder models that support the GtkDragSourceIface and the
 541			-- GtkDragDestIface. Both GtkTreeStore and GtkListStore support
 542			-- these. If `a_reorderable' is True, then the user can reorder
 543			-- the model by dragging and dropping rows. The developer can
 544			-- listen to these changes by connecting to the model's
 545			-- row_inserted and row_deleted signals.
 546			--
 547			-- This function does not give you any degree of control over
 548			-- the order.  *Any* reordering is allowed. If more control
 549			-- is needed, you should probably handle drag and drop manually.
 550		do
 551			gtk_tree_view_set_reorderable(handle, a_reorderable.to_integer)
 552		ensure
 553			is_reorderable = a_reorderable
 554		end
 555
 556	is_reorderable: BOOLEAN is
 557			-- Retrieves whether the user can reorder the tree via
 558			-- drag-and-drop. See set_reorderable().
 559			-- Returns True if the tree can be reordered.
 560		do
 561			Result := gtk_tree_view_get_reorderable(handle) > 0
 562		end
 563
 564	row_activated (a_path: GTK_TREE_PATH; a_column: GTK_TREE_VIEW_COLUMN) is
 565			-- Activates the cell determined by `a_path' and `a_column'.
 566		require
 567			a_path /= Void
 568			a_column /= Void
 569		do
 570			gtk_tree_view_row_activated (handle, a_path.handle, a_column.handle)
 571		end
 572
 573	-- gtk_tree_view_get_path_at_pos ()
 574
 575	-- gboolean    gtk_tree_view_get_path_at_pos   (GtkTreeView *tree_view,
 576	--                                              gint x,
 577	--                                              gint y,
 578	--                                              GtkTreePath **path,
 579	--                                              GtkTreeViewColumn **column,
 580	--                                              gint *cell_x,
 581	--                                              gint *cell_y);
 582
 583	-- Finds the path at the point (x, y), relative to widget coordinates. That is, x and y are relative to an events coordinates. x and y must come from an event on the tree_view only where event->window == gtk_tree_view_get_bin (). It is primarily for things like popup menus. If path is non-NULL, then it will be filled with the GtkTreePath at that point. This path should be freed with gtk_tree_path_free(). If column is non-NULL, then it will be filled with the column at that point. cell_x and cell_y return the coordinates relative to the cell background (i.e. the background_area passed to gtk_cell_renderer_render()). This function is only meaningful if tree_view is realized.
 584
 585	-- tree_view : 	A GtkTreeView.
 586	-- x : 	The x position to be identified.
 587	-- y : 	The y position to be identified.
 588	-- path : 	A pointer to a GtkTreePath pointer to be filled in, or NULL
 589	-- column : 	A pointer to a GtkTreeViewColumn pointer to be filled in, or NULL
 590	-- cell_x : 	A pointer where the X coordinate relative to the cell can be placed, or NULL
 591	-- cell_y : 	A pointer where the Y coordinate relative to the cell can be placed, or NULL
 592	-- Returns : 	TRUE if a row exists at that coordinate.
 593	-- gtk_tree_view_get_cell_area ()
 594
 595	-- void        gtk_tree_view_get_cell_area     (GtkTreeView *tree_view,
 596	--                                              GtkTreePath *path,
 597	--                                              GtkTreeViewColumn *column,
 598	--                                              GdkRectangle *rect);
 599
 600	-- Fills the bounding rectangle in tree window coordinates for the cell at the row specified by path and the column specified by column. If path is NULL, or points to a path not currently displayed, the y and height fields of the rectangle will be filled with 0. If column is NULL, the x and width fields will be filled with 0. The sum of all cell rects does not cover the entire tree; there are extra pixels in between rows, for example. The returned rectangle is equivalent to the cell_area passed to gtk_cell_renderer_render(). This function is only valid if tree_view is realized.
 601
 602	-- tree_view : 	a GtkTreeView
 603	-- path : 	a GtkTreePath for the row, or NULL to get only horizontal coordinates
 604	-- column : 	a GtkTreeViewColumn for the column, or NULL to get only vertical coordinates
 605	-- rect : 	rectangle to fill with cell rect
 606	-- gtk_tree_view_get_background_area ()
 607
 608	-- void        gtk_tree_view_get_background_area
 609	--                                             (GtkTreeView *tree_view,
 610	--                                              GtkTreePath *path,
 611	--                                              GtkTreeViewColumn *column,
 612	--                                              GdkRectangle *rect);
 613
 614	-- Fills the bounding rectangle in tree window coordinates for the cell at the row specified by path and the column specified by column. If path is NULL, or points to a node not found in the tree, the y and height fields of the rectangle will be filled with 0. If column is NULL, the x and width fields will be filled with 0. The returned rectangle is equivalent to the background_area passed to gtk_cell_renderer_render(). These background areas tile to cover the entire tree window (except for the area used for header buttons). Contrast with the cell_area, returned by gtk_tree_view_get_cell_area(), which returns only the cell itself, excluding surrounding borders and the tree expander area.
 615
 616	-- tree_view : 	a GtkTreeView
 617	-- path : 	a GtkTreePath for the row, or NULL to get only horizontal coordinates
 618	-- column : 	a GtkTreeViewColumn for the column, or NULL to get only vertical coordiantes
 619	-- rect : 	rectangle to fill with cell background rect
 620	-- gtk_tree_view_get_visible_rect ()
 621
 622	-- void        gtk_tree_view_get_visible_rect  (GtkTreeView *tree_view,
 623	--                                              GdkRectangle *visible_rect);
 624
 625	-- Fills visible_rect with the currently-visible region of the buffer, in tree coordinates. Convert to widget coordinates with gtk_tree_view_tree_to_widget_coords(). Tree coordinates start at 0,0 for row 0 of the tree, and cover the entire scrollable area of the tree.
 626
 627	-- tree_view : 	a GtkTreeView
 628	-- visible_rect : 	rectangle to fill
 629	-- gtk_tree_view_get_visible_range ()
 630
 631	-- gboolean    gtk_tree_view_get_visible_range (GtkTreeView *tree_view,
 632	--                                              GtkTreePath **start_path,
 633	--                                              GtkTreePath **end_path);
 634
 635	-- Sets start_path and end_path to be the first and last visible path. Note that there may be invisible paths in between.
 636
 637	-- The paths should be freed with gtk_tree_path_free() after use.
 638
 639	-- tree_view : 	A GtkTreeView
 640	-- start_path : 	Return location for start of region, or NULL.
 641	-- end_path : 	Return location for end of region, or NULL.
 642	-- Returns : 	TRUE, if valid paths were placed in start_path and end_path.
 643
 644	-- Since 2.8
 645	-- gtk_tree_view_get_bin_window ()
 646
 647	-- GdkWindow*  gtk_tree_view_get_bin_window    (GtkTreeView *tree_view);
 648
 649	-- Returns the window that tree_view renders to. This is used primarily to compare to event->window to confirm that the event on tree_view is on the right window.
 650
 651	-- tree_view : 	A GtkTreeView
 652	-- Returns : 	A GdkWindow, or NULL when tree_view hasn't been realized yet
 653	-- gtk_tree_view_widget_to_tree_coords ()
 654
 655	-- void        gtk_tree_view_widget_to_tree_coords
 656	--                                             (GtkTreeView *tree_view,
 657	--                                              gint wx,
 658	--                                              gint wy,
 659	--                                              gint *tx,
 660	--                                              gint *ty);
 661
 662	-- Converts widget coordinates to coordinates for the tree window (the full scrollable area of the tree).
 663
 664	-- tree_view : 	a GtkTreeView
 665	-- wx : 	widget X coordinate
 666	-- wy : 	widget Y coordinate
 667	-- tx : 	return location for tree X coordinate
 668	-- ty : 	return location for tree Y coordinate
 669	-- gtk_tree_view_tree_to_widget_coords ()
 670
 671	-- void        gtk_tree_view_tree_to_widget_coords
 672	--                                             (GtkTreeView *tree_view,
 673	--                                              gint tx,
 674	--                                              gint ty,
 675	--                                              gint *wx,
 676	--                                              gint *wy);
 677
 678	-- Converts tree coordinates (coordinates in full scrollable area of the tree) to widget coordinates.
 679
 680	-- tree_view : 	a GtkTreeView
 681	-- tx : 	tree X coordinate
 682	-- ty : 	tree Y coordinate
 683	-- wx : 	return location for widget X coordinate
 684	-- wy : 	return location for widget Y coordinate
 685	-- gtk_tree_view_enable_model_drag_dest ()
 686
 687feature -- Drag n' Drop
 688
 689	enable_model_drag_dest (a_target: GTK_TARGET_ENTRY; some_actions: INTEGER) is
 690			-- Turns Current into a drop destination for automatic DND.
 691			-- some_targets : 	the table of targets that the drag will support
 692			-- n_targets : 	the number of items in targets
 693			-- some_actions : 	the bitmask of possible actions for a drag from this widget
 694		require
 695			a_target /= Void
 696			is_valid_gdk_drag_action (some_actions)
 697		do
 698			-- XXX: WATCH OUT! thsi implemetation allows the setting of only ONE target.
 699			-- In order to allow a list of them, we'd need to develop some C code so we can transform
 700			-- a NATIVE_ARRAY [POINTER] with the handle's of the different GTK_TARGET_ENTRY
 701			-- into a GtkTargetEntry *.
 702			-- nessa, 2006-10-30
 703			gtk_tree_view_enable_model_drag_dest (handle, a_target.handle, 1, some_actions)
 704		end
 705
 706	enable_model_drag_source (a_start_button_mask: INTEGER;
 707									  a_target: GTK_TARGET_ENTRY;
 708									  some_actions: INTEGER) is
 709			-- Turns Current into a drag source for automatic DND.
 710			-- a_start_button_mask : 	Mask of allowed buttons to start drag
 711			-- some_targets : 	the table of targets that the drag will support
 712			-- n_targets : 	the number of items in targets
 713			-- some_actions : 	the bitmask of possible actions for a drag from this widget
 714		require
 715			is_valid_gdk_modifier_type (a_start_button_mask)
 716			a_target /= Void
 717			is_valid_gdk_drag_action (some_actions)
 718		do
 719			-- XXX: WATCH OUT! thsi implemetation allows the setting of only ONE target.
 720			-- In order to allow a list of them, we'd need to develop some C code so we can transform
 721			-- a NATIVE_ARRAY [POINTER] with the handle's of the different GTK_TARGET_ENTRY
 722			-- into a GtkTargetEntry *.
 723			-- nessa, 2006-10-30
 724			gtk_tree_view_enable_model_drag_source (handle, a_start_button_mask,
 725																 a_target.handle, 1, some_actions)
 726		end
 727
 728	unset_rows_drag_source is
 729			-- Undoes the effect of `enable_model_drag_source'.
 730		do
 731			gtk_tree_view_unset_rows_drag_source (handle)
 732		end
 733
 734	unset_rows_drag_dest is
 735			-- Undoes the effect of `enable_model_drag_dest'.
 736		do
 737			gtk_tree_view_unset_rows_drag_dest (handle)
 738		end
 739
 740	set_drag_dest_row (a_path: GTK_TREE_PATH; a_position: INTEGER) is
 741			-- Sets the row that is highlighted for feedback.
 742			-- a_path : The path of the row to highlight, or NULL.
 743			-- a_position : Specifies whether to drop before, after or into the row
 744		require
 745			a_path /= Void
 746			is_valid_gtk_tree_view_drop_position (a_position)
 747		do
 748			gtk_tree_view_set_drag_dest_row (handle, a_path.handle, a_position)
 749		end
 750
 751	drag_dest_row: TUPLE [GTK_TREE_PATH, INTEGER] is
 752			-- Gets information about the row that is highlighted for feedback.
 753			-- Returns a tuple with the location for the path of the highlighted row, or NULL;
 754			-- and the location for the drop position, or NULL.
 755		local
 756			a_path: GTK_TREE_PATH
 757			a_path_ptr: POINTER
 758			a_position: INTEGER
 759		do
 760			gtk_tree_view_get_drag_dest_row (handle, $a_path_ptr, $a_position);
 761			if a_path_ptr.is_not_null then create a_path.from_external_pointer (a_path_ptr) end
 762			Result := [a_path, a_position]
 763		ensure
 764			Result /= Void
 765			Result.first  /= Void implies is_valid_gtk_tree_view_drop_position (Result.second)
 766		end
 767
 768	dest_row_at_pos (drag_x, drag_y: INTEGER): TUPLE [GTK_TREE_PATH, INTEGER] is
 769			-- Determines the destination row for a given position.
 770			-- drag_x : 	the position to determine the destination row for
 771			-- drag_y : 	the position to determine the destination row for
 772			-- a_path : 	Return location for the path of the highlighted row, or NULL.
 773			-- a_position : 	Return location for the drop position, or NULL
 774			-- Returns : 	whether there is a row at the given position.
 775		local
 776			a_path: GTK_TREE_PATH
 777			a_path_ptr: POINTER
 778			a_position: INTEGER
 779			row_exists: BOOLEAN
 780		do
 781			row_exists := gtk_tree_view_get_dest_row_at_pos (handle, drag_x, drag_y, $a_path_ptr, $a_position).to_boolean
 782			if row_exists then create a_path.from_external_pointer (a_path_ptr) end
 783			Result := [a_path, a_position]
 784		ensure
 785			Result /= Void
 786			Result.first /= Void implies is_valid_gtk_tree_view_drop_position (Result.second)
 787		end
 788
 789	row_drag_icon (a_path: GTK_TREE_PATH): GDK_PIXMAP is
 790			-- Creates a GdkPixmap representation of the row at path.
 791			-- This image is used for a drag icon.
 792			-- a_path : 	a GtkTreePath in Current
 793			-- Returns : 	a newly-allocated pixmap of the drag icon.
 794		require
 795			a_path /= Void
 796		local
 797			c_ptr: POINTER
 798		do
 799			c_ptr := gtk_tree_view_create_row_drag_icon (handle, a_path.handle)
 800			create Result.from_external_pointer (c_ptr)
 801		end
 802
 803feature -- Search
 804
 805	-- gtk_tree_view_set_enable_search ()
 806
 807	-- void        gtk_tree_view_set_enable_search (GtkTreeView *tree_view,
 808	--                                              gboolean enable_search);
 809
 810	-- If enable_search is set, then the user can type in text to search through the tree interactively (this is sometimes called "typeahead find").
 811
 812	-- Note that even if this is FALSE, the user can still initiate a search using the "start-interactive-search" key binding.
 813
 814	-- tree_view : 	A GtkTreeView
 815	-- enable_search : 	TRUE, if the user can search interactively
 816	-- gtk_tree_view_get_enable_search ()
 817
 818	-- gboolean    gtk_tree_view_get_enable_search (GtkTreeView *tree_view);
 819
 820	-- Returns whether or not the tree allows to start interactive searching by typing in text.
 821
 822	-- tree_view : 	A GtkTreeView
 823	-- Returns : 	whether or not to let the user search interactively
 824	-- gtk_tree_view_get_search_column ()
 825
 826	-- gint        gtk_tree_view_get_search_column (GtkTreeView *tree_view);
 827
 828	-- Gets the column searched on by the interactive search code.
 829
 830	-- tree_view : 	A GtkTreeView
 831	-- Returns : 	the column the interactive search code searches in.
 832	-- gtk_tree_view_set_search_column ()
 833
 834	-- void        gtk_tree_view_set_search_column (GtkTreeView *tree_view,
 835	--                                              gint column);
 836
 837	-- Sets column as the column where the interactive search code should search in.
 838
 839	-- If the sort column is set, users can use the "start-interactive-search" key binding to bring up search popup. The enable-search property controls whether simply typing text will also start an interactive search.
 840
 841	-- Note that column refers to a column of the model.
 842
 843	-- tree_view : 	A GtkTreeView
 844	-- column : 	the column of the model to search in, or -1 to disable searching
 845	-- gtk_tree_view_get_search_equal_func ()
 846
 847	-- GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func
 848	--                                             (GtkTreeView *tree_view);
 849
 850	-- Returns the compare function currently in use.
 851
 852	-- tree_view : 	A GtkTreeView
 853	-- Returns : 	the currently used compare function for the search code.
 854	-- gtk_tree_view_set_search_equal_func ()
 855
 856	-- void        gtk_tree_view_set_search_equal_func
 857	--                                             (GtkTreeView *tree_view,
 858	--                                              GtkTreeViewSearchEqualFunc search_equal_func,
 859	--                                              gpointer search_user_data,
 860	--                                              GtkDestroyNotify search_destroy);
 861
 862	-- Sets the compare function for the interactive search capabilities; note that somewhat like strcmp() returning 0 for equality GtkTreeViewSearchEqualFunc returns FALSE on matches.
 863
 864	-- tree_view : 	A GtkTreeView
 865	-- search_equal_func : 	the compare function to use during the search
 866	-- search_user_data : 	user data to pass to search_equal_func, or NULL
 867	-- search_destroy : 	Destroy notifier for search_user_data, or NULL
 868	-- gtk_tree_view_get_fixed_height_mode ()
 869
 870	-- gboolean    gtk_tree_view_get_fixed_height_mode
 871	--                                             (GtkTreeView *tree_view);
 872
 873	-- Returns whether fixed height mode is turned on for tree_view.
 874
 875	-- tree_view : 	a GtkTreeView
 876	-- Returns : 	TRUE if tree_view is in fixed height mode
 877
 878	-- Since 2.6
 879	-- gtk_tree_view_set_fixed_height_mode ()
 880
 881	-- void        gtk_tree_view_set_fixed_height_mode
 882	--                                             (GtkTreeView *tree_view,
 883	--                                              gboolean enable);
 884
 885	-- Enables or disables the fixed height mode of tree_view. Fixed height mode speeds up GtkTreeView by assuming that all rows have the same height. Only enable this option if all rows are the same height and all columns are of type GTK_TREE_VIEW_COLUMN_FIXED.
 886
 887	-- tree_view : 	a GtkTreeView
 888	-- enable : 	TRUE to enable fixed height mode
 889
 890	-- Since 2.6
 891	-- gtk_tree_view_get_hover_selection ()
 892
 893	-- gboolean    gtk_tree_view_get_hover_selection
 894	--                                             (GtkTreeView *tree_view);
 895
 896	-- Returns whether hover selection mode is turned on for tree_view.
 897
 898	-- tree_view : 	a GtkTreeView
 899	-- Returns : 	TRUE if tree_view is in hover selection mode
 900
 901	-- Since 2.6
 902	-- gtk_tree_view_set_hover_selection ()
 903
 904	-- void        gtk_tree_view_set_hover_selection
 905	--                                             (GtkTreeView *tree_view,
 906	--                                              gboolean hover);
 907
 908	-- Enables of disables the hover selection mode of tree_view. Hover selection makes the selected row follow the pointer. Currently, this works only for the selection modes GTK_SELECTION_SINGLE and GTK_SELECTION_BROWSE.
 909
 910	-- tree_view : 	a GtkTreeView
 911	-- hover : 	TRUE to enable hover selection mode
 912
 913	-- Since 2.6
 914	-- gtk_tree_view_get_hover_expand ()
 915
 916	-- gboolean    gtk_tree_view_get_hover_expand  (GtkTreeView *tree_view);
 917
 918	-- Returns whether hover expansion mode is turned on for tree_view.
 919
 920	-- tree_view : 	a GtkTreeView
 921	-- Returns : 	TRUE if tree_view is in hover expansion mode
 922
 923	-- Since 2.6
 924	-- gtk_tree_view_set_hover_expand ()
 925
 926	-- void        gtk_tree_view_set_hover_expand  (GtkTreeView *tree_view,
 927	--                                              gboolean expand);
 928
 929	-- Enables of disables the hover expansion mode of tree_view. Hover expansion makes rows expand or collaps if the pointer moves over them.
 930
 931	-- tree_view : 	a GtkTreeView
 932	-- expand : 	TRUE to enable hover selection mode
 933
 934	-- Since 2.6
 935	-- GtkTreeDestroyCountFunc ()
 936
 937	-- void        (*GtkTreeDestroyCountFunc)      (GtkTreeView *tree_view,
 938	--                                              GtkTreePath *path,
 939	--                                              gint children,
 940	--                                              gpointer user_data);
 941
 942	-- tree_view : 	
 943	-- path : 	
 944	-- children : 	
 945	-- user_data : 	
 946	-- gtk_tree_view_set_destroy_count_func ()
 947
 948	-- void        gtk_tree_view_set_destroy_count_func
 949	--                                             (GtkTreeView *tree_view,
 950	--                                              GtkTreeDestroyCountFunc func,
 951	--                                              gpointer data,
 952	--                                              GtkDestroyNotify destroy);
 953
 954	-- This function should almost never be used. It is meant for private use by ATK for determining the number of visible children that are removed when the user collapses a row, or a row is deleted.
 955
 956	-- tree_view : 	A GtkTreeView
 957	-- func : 	Function to be called when a view row is destroyed, or NULL
 958	-- data : 	User data to be passed to func, or NULL
 959	-- destroy : 	Destroy notifier for data, or NULL
 960	-- GtkTreeViewRowSeparatorFunc ()
 961
 962	-- gboolean    (*GtkTreeViewRowSeparatorFunc)  (GtkTreeModel *model,
 963	--                                              GtkTreeIter *iter,
 964	--                                              gpointer data);
 965
 966	-- Function type for determining whether the row pointed to by iter should be rendered as a separator. A common way to implement this is to have a boolean column in the model, whose values the GtkTreeViewRowSeparatorFunc returns.
 967	-- model : 	the GtkTreeModel
 968	-- iter : 	a GtkTreeIter pointing at a row in model
 969	-- data : 	user data
 970	-- Returns : 	TRUE if the row is a separator
 971	-- gtk_tree_view_get_row_separator_func ()
 972
 973	-- GtkTreeViewRowSeparatorFunc gtk_tree_view_get_row_separator_func
 974	--                                             (GtkTreeView *tree_view);
 975
 976	-- Returns the current row separator function.
 977
 978	-- tree_view : 	a GtkTreeView
 979	-- Returns : 	the current row separator function.
 980
 981	-- Since 2.6
 982	-- gtk_tree_view_set_row_separator_func ()
 983
 984	-- void        gtk_tree_view_set_row_separator_func
 985	--                                             (GtkTreeView *tree_view,
 986	--                                              GtkTreeViewRowSeparatorFunc func,
 987	--                                              gpointer data,
 988	--                                              GtkDestroyNotify destroy);
 989
 990	-- Sets the row separator function, which is used to determine whether a row should be drawn as a separator. If the row separator function is NULL, no separators are drawn. This is the default value.
 991
 992	-- tree_view : 	a GtkTreeView
 993	-- func : 	a GtkTreeViewRowSeparatorFunc
 994	-- data : 	user data to pass to func, or NULL
 995	-- destroy : 	destroy notifier for data, or NULL
 996
 997	-- Since 2.6
 998	-- Property Details
 999	-- The "enable-search" property
1000
1001	--   "enable-search"        gboolean              : Read / Write
1002
1003	-- View allows user to search through columns interactively.
1004
1005	-- Default value: TRUE
1006	-- The "expander-column" property
1007
1008	--   "expander-column"      GtkTreeViewColumn     : Read / Write
1009
1010	-- Set the column for the expander column.
1011	-- The "fixed-height-mode" property
1012
1013	--   "fixed-height-mode"    gboolean              : Read / Write
1014
1015	-- Setting the ::fixed-height-mode property to TRUE speeds up GtkTreeView by assuming that all rows have the same height. Only enable this option if all rows are the same height. Please see gtk_tree_view_set_fixed_height_mode() for more information on this option.
1016
1017	-- Default value: FALSE
1018
1019	-- Since 2.4
1020	-- The "hadjustment" property
1021
1022	--   "hadjustment"          GtkAdjustment         : Read / Write
1023
1024	-- Horizontal Adjustment for the widget.
1025	-- The "headers-clickable" property
1026
1027	--   "headers-clickable"    gboolean              : Read / Write
1028
1029	-- Column headers respond to click events.
1030
1031	-- Default value: FALSE
1032	-- The "headers-visible" property
1033
1034	--   "headers-visible"      gboolean              : Read / Write
1035
1036	-- Show the column header buttons.
1037
1038	-- Default value: TRUE
1039	-- The "hover-expand" property
1040
1041	--   "hover-expand"         gboolean              : Read / Write
1042
1043	-- Enables of disables the hover expansion mode of tree_view. Hover expansion makes rows expand or collaps if the pointer moves over them.
1044
1045	-- This mode is primarily indended for treeviews in popups, e.g. in GtkComboBox or GtkEntryCompletion.
1046
1047	-- Default value: FALSE
1048
1049	-- Since 2.6
1050	-- The "hover-selection" property
1051
1052	--   "hover-selection"      gboolean              : Read / Write
1053
1054	-- Enables of disables the hover selection mode of tree_view. Hover selection makes the selected row follow the pointer. Currently, this works only for the selection modes GTK_SELECTION_SINGLE and GTK_SELECTION_BROWSE.
1055
1056	-- This mode is primarily indended for treeviews in popups, e.g. in GtkComboBox or GtkEntryCompletion.
1057
1058	-- Default value: FALSE
1059
1060	-- Since 2.6
1061	-- The "model" property
1062
1063	--   "model"                GtkTreeModel          : Read / Write
1064
1065	-- The model for the tree view.
1066	-- The "reorderable" property
1067
1068	--   "reorderable"          gboolean              : Read / Write
1069
1070	-- View is reorderable.
1071
1072	-- Default value: FALSE
1073	-- The "rules-hint" property
1074
1075	--   "rules-hint"           gboolean              : Read / Write
1076
1077	-- Set a hint to the theme engine to draw rows in alternating colors.
1078
1079	-- Default value: FALSE
1080	-- The "search-column" property
1081
1082	--   "search-column"        gint                  : Read / Write
1083
1084	-- Model column to search through when searching through code.
1085
1086	-- Allowed values: >= -1
1087
1088	-- Default value: -1
1089	-- The "vadjustment" property
1090
1091	--   "vadjustment"          GtkAdjustment         : Read / Write
1092
1093	-- Vertical Adjustment for the widget.
1094	-- Style Property Details
1095	-- The "allow-rules" style property
1096
1097	--   "allow-rules"          gboolean              : Read
1098
1099	-- Allow drawing of alternating color rows.
1100
1101	-- Default value: TRUE
1102	-- The "even-row-color" style property
1103
1104	--   "even-row-color"       GdkColor              : Read
1105
1106	-- Color to use for even rows.
1107	-- The "expander-size" style property
1108
1109	--   "expander-size"        gint                  : Read
1110
1111	-- Size of the expander arrow.
1112
1113	-- Allowed values: >= 0
1114
1115	-- Default value: 12
1116	-- The "horizontal-separator" style property
1117
1118	--   "horizontal-separator" gint                  : Read
1119
1120	-- Horizontal space between cells. Must be an even number.
1121
1122	-- Allowed values: >= 0
1123
1124	-- Default value: 2
1125	-- The "indent-expanders" style property
1126
1127	--   "indent-expanders"     gboolean              : Read
1128
1129	-- Make the expanders indented.
1130
1131	-- Default value: TRUE
1132	-- The "odd-row-color" style property
1133
1134	--   "odd-row-color"        GdkColor              : Read
1135
1136	-- Color to use for odd rows.
1137	-- The "vertical-separator" style property
1138
1139	--   "vertical-separator"   gint                  : Read
1140
1141	-- Vertical space between cells. Must be an even number.
1142
1143	-- Allowed values: >= 0
1144
1145	-- Default value: 2
1146	-- Signal Details
1147	-- The "columns-changed" signal
1148
1149	-- void        user_function                  (GtkTreeView *treeview,
1150	--                                             gpointer user_data);
1151
1152	-- treeview : 	the object which received the signal.
1153	-- user_data : 	user data set when the signal handler was connected.
1154	-- The "cursor-changed" signal
1155
1156	-- void        user_function                  (GtkTreeView *treeview,
1157	--                                             gpointer user_data);
1158
1159	-- treeview : 	the object which received the signal.
1160	-- user_data : 	user data set when the signal handler was connected.
1161
1162	-- The "move-cursor" signal
1163
1164	-- gboolean    user_function                  (GtkTreeView *treeview,
1165	--                                             GtkMovementStep arg1,
1166	--                                             gint arg2,
1167	--                                             gpointer user_data);
1168
1169	-- treeview : 	the object which received the signal.
1170	-- arg1 : 	
1171	-- arg2 : 	
1172	-- user_data : 	user data set when the signal handler was connected.
1173	-- Returns : 	
1174
1175	-- The "select-all" signal
1176
1177	-- gboolean    user_function                  (GtkTreeView *treeview,
1178	--                                             gpointer user_data);
1179
1180	-- treeview : 	the object which received the signal.
1181	-- user_data : 	user data set when the signal handler was connected.
1182	-- Returns : 	
1183	-- The "select-cursor-parent" signal
1184
1185	-- gboolean    user_function                  (GtkTreeView *treeview,
1186	--                                             gpointer user_data);
1187
1188	-- treeview : 	the object which received the signal.
1189	-- user_data : 	user data set when the signal handler was connected.
1190	-- Returns : 	
1191	-- The "select-cursor-row" signal
1192
1193	-- gboolean    user_function                  (GtkTreeView *treeview,
1194	--                                             gboolean arg1,
1195	--                                             gpointer user_data);
1196
1197	-- treeview : 	the object which received the signal.
1198	-- arg1 : 	
1199	-- user_data : 	user data set when the signal handler was connected.
1200	-- Returns : 	
1201	-- The "set-scroll-adjustments" signal
1202
1203	-- void        user_function                  (GtkTreeView *treeview,
1204	--                                             GtkAdjustment *arg1,
1205	--                                             GtkAdjustment *arg2,
1206	--                                             gpointer user_data);
1207
1208	-- treeview : 	the object which received the signal.
1209	-- arg1 : 	
1210	-- arg2 : 	
1211	-- user_data : 	user data set when the signal handler was connected.
1212	-- The "start-interactive-search" signal
1213
1214	-- gboolean    user_function                  (GtkTreeView *treeview,
1215	--                                             gpointer user_data);
1216
1217	-- treeview : 	the object which received the signal.
1218	-- user_data : 	user data set when the signal handler was connected.
1219	-- Returns : 	
1220	-- The "test-collapse-row" signal
1221
1222	-- gboolean    user_function                  (GtkTreeView *treeview,
1223	--                                             GtkTreeIter *arg1,
1224	--                                             GtkTreePath *arg2,
1225	--                                             gpointer user_data);
1226
1227	-- treeview : 	the object which received the signal.
1228	-- arg1 : 	
1229	-- arg2 : 	
1230	-- user_data : 	user data set when the signal handler was connected.
1231	-- Returns : 	
1232	-- The "test-expand-row" signal
1233
1234	-- gboolean    user_function                  (GtkTreeView *treeview,
1235	--                                             GtkTreeIter *arg1,
1236	--                                             GtkTreePath *arg2,
1237	--                                             gpointer user_data);
1238
1239	-- treeview : …

Large files files are truncated, but you can click here to view the full file