PageRenderTime 31ms CodeModel.GetById 17ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/src/wrappers/gtk/library/gtk_tree_view_column.e

http://github.com/tybor/Liberty
Specman e | 822 lines | 353 code | 162 blank | 307 comment | 2 complexity | e16611f1294ecdfcafd78e21b41b7c01 MD5 | raw file
  1indexing
  2	description: "GtkTreeViewColumn - A visible column in a GtkTreeView widget."
  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				
 22class GTK_TREE_VIEW_COLUMN
 23	-- The GtkTreeViewColumn object represents a visible column in a
 24	-- GtkTreeView widget. It allows to set properties of the column
 25	-- header, and functions as a holding pen for the cell renderers
 26	-- which determine how the data in the column is displayed.
 27
 28	-- Please refer to the tree widget conceptual overview for an
 29	-- overview of all the objects and data types related to the
 30	-- tree widget and how they work together.class
 31	-- GTK_TREE_VIEW_COLUMN_EXTERNALS
 32
 33inherit
 34	GTK_OBJECT
 35	GTK_CELL_LAYOUT
 36		undefine store_eiffel_wrapper 
 37		redefine 
 38			clear, 
 39			add_attribute, clear_attributes, set_attributes,
 40			pack_start, pack_end
 41		end 
 42
 43insert
 44	GTK_TREE_VIEW_COLUMN_EXTERNALS
 45	GTK_TREE_VIEW_COLUMN_SIZING
 46	GTK_SORT_TYPE
 47	
 48creation make, with_attributes
 49	
 50creation {WRAPPER, WRAPPER_HANDLER} from_external_pointer, secondary_wrapper_from	
 51
 52feature {} -- Creation
 53
 54	make is
 55			-- Creates a new GtkTreeViewColumn.
 56		require gtk_initialized: gtk.is_initialized
 57		do
 58			from_external_pointer (gtk_tree_view_column_new)
 59		end
 60
 61	with_attributes (a_title: STRING; a_renderer: GTK_CELL_RENDERER; some_attributes: COLLECTION [TUPLE[STRING,INTEGER]]) is
 62			-- Creates a new GtkTreeViewColumn with a number of default
 63			-- values. This is equivalent to calling `set_title',
 64			-- `pack_start', and `set_attributes' on the newly created
 65			-- GtkTreeViewColumn.
 66
 67			-- TODO: Eiffelize this:
 68			-- Here's a simple example:
 69			
 70			--  enum { TEXT_COLUMN, COLOR_COLUMN, N_COLUMNS };
 71			--  ...
 72			--  {
 73			--    GtkTreeViewColumn *column;
 74			--    GtkCellRenderer   *renderer = gtk_cell_renderer_text_new ();
 75			
 76			--    column = gtk_tree_view_column_new_with_attributes ("Title",
 77			--    renderer, "text", TEXT_COLUMN, "foreground", COLOR_COLUMN,
 78			--    NULL); }
 79		require
 80			gtk_initialized: gtk.is_initialized
 81			title_not_void: a_title /= Void
 82			renderer_not_void: a_renderer /= Void
 83		do
 84			make
 85			set_title (a_title)
 86			pack_start(a_renderer, True)
 87			set_attributes (a_renderer, some_attributes)
 88		end
 89
 90feature
 91	pack_start (a_cell: GTK_CELL_RENDERER; does_expand: BOOLEAN) is
 92			-- Packs `a_cell' into the beginning of the column. If
 93			-- `does_expand' is False, then the cell is allocated no more
 94			-- space than it needs. Any unused space is divided evenly
 95			-- between cells for which expand is True.
 96		do
 97			gtk_tree_view_column_pack_start (handle, a_cell.handle, does_expand.to_integer)
 98		end
 99
100	pack_end (a_cell: GTK_CELL_RENDERER; does_expand: BOOLEAN) is
101			-- Adds `a_cell' to end of the column. If `does_expand' is
102			-- False, then the cell is allocated no more space than it
103			-- needs. Any unused space is divided evenly between cells
104			-- for which expand is True.
105		do
106			gtk_tree_view_column_pack_end (handle, a_cell.handle, does_expand.to_integer)
107		end
108
109	clear is
110			-- Unsets all the mappings on all renderers on the column.
111		do
112			gtk_tree_view_column_clear (handle)
113		end
114
115	cell_renderers: G_LIST [GTK_CELL_RENDERER] is
116			-- a GList of all the cell renderers in the column, in no
117			-- particular order.
118		do
119			-- Returns a newly-allocated GList of all the cell renderers
120			-- in the column, in no particular order. The list must be
121			-- freed with g_list_free().
122			create {G_OBJECT_LIST[GTK_CELL_RENDERER]}
123			Result.from_external_pointer (gtk_tree_view_column_get_cell_renderers (handle))
124		ensure
125			Result/=Void
126		end
127
128	add_attribute (a_cell_renderer: GTK_CELL_RENDERER; an_attribute: STRING; a_column: INTEGER) is
129			-- Adds `an_attribute' mapping to the list in
130			-- tree_column. `a_column' is the column of the model to get
131			-- a value from, and the attribute is the parameter on
132			-- `a_cell_renderer' to be set from the value. So for example
133			-- if column 2 of the model contains strings, you could have
134			-- the "text" attribute of a GtkCellRendererText get its
135			-- values from column 2.
136			
137			-- `a_cell_renderer': GtkCellRenderer to set attributes on
138			
139			-- `an_attribute' : An attribute on the renderer
140			
141			-- `a_column' : The column position on the model to get the
142			-- attribute from.
143		do
144			gtk_tree_view_column_add_attribute (handle, a_cell_renderer.handle,
145												an_attribute.to_external, a_column)
146		end
147	
148	set_attributes (a_renderer: GTK_CELL_RENDERER; some_attributes: COLLECTION [TUPLE[STRING,INTEGER]]) is
149			-- Sets the list as the attributes (`some_attributes') of
150			-- tree column. All existing attributes are removed, and
151			-- replaced with the new attributes.
152		local iter: ITERATOR [TUPLE[STRING,INTEGER]]
153		do
154			clear_attributes (a_renderer)
155			from iter:=some_attributes.get_new_iterator;iter.start
156			until iter.is_off
157			loop
158				add_attribute (a_renderer, iter.item.item_1, iter.item.item_2)
159				iter.next
160			end
161		end
162	
163	-- TODO: gtk_tree_view_column_set_cell_data_func ()
164
165	-- void gtk_tree_view_column_set_cell_data_func (GtkTreeViewColumn
166	-- *tree_column, GtkCellRenderer *cell_renderer, GtkTreeCellDataFunc
167	-- func, gpointer func_data, GtkDestroyNotify destroy);
168	
169	-- Sets the GtkTreeViewColumnFunc to use for the column. This
170	-- function is used instead of the standard attributes mapping for
171	-- setting the column value, and should set the value of
172	-- tree_column's cell renderer as appropriate. func may be NULL to
173	-- remove an older one.
174	
175	-- tree_column : 	A GtkTreeViewColumn
176	-- cell_renderer : 	A GtkCellRenderer
177	-- func : 	The GtkTreeViewColumnFunc to use.
178	-- func_data : 	The user data for func.
179	-- destroy : 	The destroy notification for func_data
180	
181	clear_attributes (a_cell_renderer: GTK_CELL_RENDERER) is
182			-- Clears all existing attributes previously set with
183			-- `set_attributes'.
184
185			-- `a_cell_renderer': a GtkCellRenderer to clear the
186			-- attribute mapping on.
187		do
188			gtk_tree_view_column_clear_attributes (handle, a_cell_renderer.handle)
189		end
190
191feature -- Spacing
192	set_spacing (a_spacing: INTEGER) is
193			-- Sets the spacing field of tree_column, which is the number
194			-- of pixels to place between cell renderers packed into it.
195		do
196			gtk_tree_view_column_set_spacing (handle, a_spacing)
197		end
198
199	spacing: INTEGER is
200			-- the spacing of the tree column.
201		do
202			Result := gtk_tree_view_column_get_spacing (handle)
203		end
204	
205feature -- Visibility
206	set_visible is
207			-- Makes the column visible
208		do
209			gtk_tree_view_column_set_visible (handle, 1)
210		ensure visible: is_visible
211		end
212
213	set_invisible is
214			-- Makes the column visible
215		do
216			gtk_tree_view_column_set_visible (handle, 0)
217		ensure invisible: not is_visible
218		end
219
220	is_visible: BOOLEAN is
221			-- Is the tree column visible, i.e. shown by the tree?
222		do
223			Result := (gtk_tree_view_column_get_visible (handle)).to_boolean
224		end
225
226feature -- Resizability
227	set_resizable is
228		-- Allow the user to explicitly resize the column by grabbing
229		-- the outer edge of the column button. If sizing mode of
230		-- the column is `gtk_tree_view_column_autosize', then the sizing
231		-- mode is changed to `gtk_tree_view_column_grow_only'.
232		do
233			gtk_tree_view_column_set_resizable (handle, 1)
234		ensure resizable: is_resizable
235		end
236
237	unset_resizable is
238		-- Forbid the user to  resize the column.
239		do
240			gtk_tree_view_column_set_resizable (handle, 0)
241		ensure unresizable: not is_resizable
242		end
243
244	is_resizable: BOOLEAN is
245			-- Can the tree_column be resized by the end user?
246		do
247			Result:=gtk_tree_view_column_get_resizable(handle).to_boolean
248		end
249
250
251feature -- Sizing
252
253	set_sizing (a_type: INTEGER) is
254			-- Sets the growth behavior of tree_column to `a_type'.
255		require valid_type: is_valid_gtk_tree_view_column_sizing (a_type)
256		do
257			gtk_tree_view_column_set_sizing (handle, a_type)
258		end
259
260	set_grow_only is
261			-- Makes the column bigger only in reaction to changes in the
262			-- model
263		do
264			set_sizing (gtk_tree_view_column_grow_only)
265		end
266
267	set_autosize is
268			-- Makes the column size to be the optimal size everytime the
269			-- model changes.
270		do
271			set_sizing (gtk_tree_view_column_autosize)
272		end
273	
274	set_fixed is
275			-- Makes the column a fixed numbers of pixels wide.
276		do
277			set_sizing (gtk_tree_view_column_fixed)
278		end
279
280	sizing_type: INTEGER is
281			-- the current type of tree_column.
282		do
283			Result :=  gtk_tree_view_column_get_sizing (handle)
284		ensure valid_type: is_valid_gtk_tree_view_column_sizing (Result)
285		end
286
287	is_grow_only: BOOLEAN is
288		do
289			Result := (sizing_type = gtk_tree_view_column_grow_only)
290		end
291
292	is_autosize: BOOLEAN is
293		do
294			Result := (sizing_type = gtk_tree_view_column_autosize)
295		end
296	
297	is_fixed:BOOLEAN is
298		do
299			Result := (sizing_type = gtk_tree_view_column_fixed)
300		end
301
302feature -- Width
303	width: INTEGER is
304			-- the current size of tree column in pixels.
305		do
306			Result := gtk_tree_view_column_get_width  (handle)
307		end
308
309	fixed_width: INTEGER is
310			-- The fixed width of the column. This value is only meaning
311			-- may not be the actual width of the column on the screen,
312			-- just what is requested.
313		do
314			Result := gtk_tree_view_column_get_fixed_width (handle)
315		end
316
317	set_fixed_width (a_width: INTEGER) is
318			-- Sets the size of the column in pixels. This is meaningful
319			-- only if the sizing type is gtk_tree_view_column_fixed
320			-- (is_fixed = True). The size of the column is clamped to
321			-- the min/max width for the column. Please note that the
322			-- min/max width of the column doesn't actually affect the
323			-- "fixed_width" property of the widget, just the actual size
324			-- when displayed.
325		require valid_width: a_width > 0
326		do
327			gtk_tree_view_column_set_fixed_width (handle, a_width)
328		end
329
330	set_min_width (a_width: INTEGER) is
331			-- Sets the minimum width of the tree_column. If min_width is -1, then the minimum width is unset.
332		require valid_width: a_width > 0
333		do
334			gtk_tree_view_column_set_min_width (handle, a_width)
335		ensure set: min_width = a_width
336		end
337
338	unset_min_width is
339			-- Unsets the minimum width of the tree_column. If queried, min_width is -1,
340		do
341			gtk_tree_view_column_set_min_width (handle, -1)
342		ensure unset: min_width = -1
343		end
344
345	min_width: INTEGER is
346			-- The minimum width in pixels of the tree_column, or -1 if no minimum width is set.
347		do
348			Result := gtk_tree_view_column_get_min_width (handle)
349		ensure valid: Result >= -1
350		end
351
352	set_max_width (a_width: INTEGER) is
353			-- Sets the maximum width of the tree_column. If max_width is
354			-- -1, then the maximum width is unset. Note, the column can
355			-- actually be wider than max width if it's the last column
356			-- in a view. In this case, the column expands to fill any
357			-- extra space.
358		do
359			gtk_tree_view_column_set_max_width (handle, a_width)
360		ensure set: max_width = a_width
361		end
362
363	unset_max_width is
364			-- Unset the maximum width. See `set_max_width'
365		do
366			gtk_tree_view_column_set_max_width (handle, -1)
367		ensure unset: max_width = -1
368		end
369
370
371	max_width: INTEGER is
372			-- the maximum width in pixels of the tree_column, or -1 if
373			-- no maximum width is set.
374		do
375			Result :=  gtk_tree_view_column_get_max_width (handle)
376		end
377
378feature
379	clicked is
380			-- Emits the "clicked" signal on the column. It will only
381			-- work if tree_column is clickable.
382		do
383			gtk_tree_view_column_clicked (handle)
384		end
385
386	set_title (a_title: STRING) is
387			-- Sets the title of the tree column. If a custom widget has
388			-- been set, then this value is ignored.
389		require valid_title: a_title /= Void
390		do
391			gtk_tree_view_column_set_title  (handle, a_title.to_external)
392		end
393
394	title: STRING is
395		-- The title of the widget.
396		do
397			-- the title of the column. This string should not be
398			-- modified or freed.
399			create Result.from_external_copy (gtk_tree_view_column_get_title(handle))
400		ensure not_void: Result/=Void
401		end
402
403feature -- Expandability
404	set_expand is
405			-- Sets the column to take available extra space. This space
406			-- is shared equally amongst all columns that have the expand
407			-- set to True. If no column has this option set, then the
408			-- last column gets all extra space. By default, every column
409			-- is created with is_expanded= False.
410		do
411			gtk_tree_view_column_set_expand (handle, 1)
412		ensure is_expanded: is_expanded
413		end
414
415	unset_expand is
416			-- Makes the column unexpanded. This is the default. See
417			-- `set_expand'
418		do
419			gtk_tree_view_column_set_expand (handle, 0)
420		ensure not_expanded: not is_expanded
421		end
422
423	is_expanded: BOOLEAN is
424			-- Does the column expand to take any available space?
425		do
426			Result := gtk_tree_view_column_get_expand (handle).to_boolean
427		end
428
429feature -- Clickability
430	set_clickable is
431			-- Sets the header to be active if active. When the header is
432			-- active, then it can take keyboard focus, and can be
433			-- clicked.
434		do
435			gtk_tree_view_column_set_clickable (handle, 1)
436		ensure clickable: is_clickable
437		end
438
439	unset_clickable is
440			-- Sets the header to be inactive.
441		do
442			gtk_tree_view_column_set_clickable (handle, 0)
443		ensure unclickable: not is_clickable
444		end
445
446	is_clickable: BOOLEAN is
447			-- Can the user click on the header for the column?
448		do
449			Result := gtk_tree_view_column_get_clickable(handle).to_boolean
450		end
451
452	set_widget (a_widget: GTK_WIDGET) is
453			-- Sets the widget in the header to be widget.
454		require valid_widget: a_widget/=Void
455		do
456			gtk_tree_view_column_set_widget (handle, a_widget.handle)
457		end
458
459	unset_widget  is
460			-- The header button is set with a GtkLabel set to `title'.
461		do
462			gtk_tree_view_column_set_widget (handle, default_pointer)
463		end
464
465
466	widget: GTK_WIDGET is
467			-- the GtkWidget in the button on the column header. If a custom
468			-- widget has not been set then Void is returned.
469		do
470			-- TODO: get the wrapper stored into into the gtkobject
471			-- GtkWidget*  gtk_tree_view_column_get_widget (GtkTreeViewColumn *tree_column);
472		ensure implemented: False
473		end
474
475	set_alignment (xalign: REAL_32) is
476			-- Sets the alignment of the title or custom widget inside
477			-- the column header. The alignment determines its location
478			-- inside the button 0.0 for left, 0.5 for center, 1.0 for
479			-- right.
480		require valid_align: xalign.in_range ({REAL_32 0.0}, {REAL_32 1.0})
481		do
482			gtk_tree_view_column_set_alignment (handle, xalign)
483		end
484
485	alignment: REAL_32 is
486			-- the current x alignment of tree_column. This value can
487			-- range between 0.0 and 1.0.
488		do
489			Result := gtk_tree_view_column_get_alignment (handle)
490		ensure valid: Result.in_range ({REAL_32 0.0}, {REAL_32 1.0})
491		end
492
493feature -- Reorderability
494
495	set_reorderable is
496			-- The column can be reordered by the end user dragging the header.
497		do
498			gtk_tree_view_column_set_reorderable (handle, 1)
499		ensure reorderable: is_reorderable
500		end
501
502	unset_reorderable is
503			-- Makes the column not reorderable
504		do
505			gtk_tree_view_column_set_reorderable (handle, 0)
506		ensure not_reorderable: not is_reorderable
507		end
508
509	is_reorderable: BOOLEAN is
510			-- Can  the tree column be reordered by the user?
511		do
512			Result:=gtk_tree_view_column_get_reorderable(handle).to_boolean
513		end
514
515	set_sort_column_id (a_column_id: INTEGER) is
516			-- Sets the logical `a_column_id' that this column sorts on
517			-- when this column is selected for sorting. Doing so makes
518			-- the column header clickable.
519		do
520			gtk_tree_view_column_set_sort_column_id (handle, a_column_id)
521		ensure set: sort_column_id = a_column_id
522		end
523
524	sort_column_id: INTEGER is
525			-- the logical sort_column_id that the model sorts on when
526			-- this column is selected for sorting. See
527			-- `set_sort_column_id'.  -1 if this column can't be used for
528			-- sorting.
529		do
530			Result:=gtk_tree_view_column_get_sort_column_id(handle)
531		end
532
533	show_sort_indicator is
534			-- Display an arrow in the header button indicating the
535			-- column is sorted. Call `set_sort_order' to change the
536			-- direction of the arrow.
537		do
538			gtk_tree_view_column_set_sort_indicator (handle, 1)
539		ensure shown: sort_indicator_shown
540		end
541
542	hide_sort_indicator is
543			-- Remove the arrow in the header button indicating the column is sorted.
544		do
545			gtk_tree_view_column_set_sort_indicator (handle, 0)
546		ensure hided: sort_indicator_shown
547		end
548
549	sort_indicator_shown: BOOLEAN is
550		do
551			Result:=gtk_tree_view_column_get_sort_indicator(handle).to_boolean
552		end
553
554	set_sort_order_ascending is
555			-- Changes the appearance of the sort indicator to ascending.
556		
557			-- This does not actually sort the model. Use
558			-- `set_sort_column_id' if you want automatic sorting
559			-- support. This function is primarily for custom sorting
560			-- behavior, and should be used in conjunction with
561			-- `set_sort_column' to do that. For custom models, the
562			-- mechanism will vary.
563		
564			-- The sort indicator changes direction to indicate normal
565			-- sort or reverse sort. Note that you must have the sort
566			-- indicator enabled to see anything when calling this
567			-- function; see `set_sort_indicator'.
568		do
569			gtk_tree_view_column_set_sort_order (handle,gtk_sort_ascending)
570		ensure set: is_sort_order_ascending
571		end
572
573	set_sort_order_descending is
574			-- Changes the appearance of the sort indicator to
575			-- descending. See also `set_sort_order_ascending'.
576		do
577			gtk_tree_view_column_set_sort_order (handle,gtk_sort_descending)
578		end
579
580	is_sort_order_ascending: BOOLEAN is
581			-- Is the sort order ascending?
582		do
583			Result:=(gtk_tree_view_column_get_sort_order(handle)=gtk_sort_ascending)
584		end
585
586	-- TODO: wrap gtk_tree_view_column_cell_set_cell_data (). When it
587	-- is used?
588
589	-- void gtk_tree_view_column_cell_set_cell_data (GtkTreeViewColumn
590	-- *tree_column, GtkTreeModel *tree_model, GtkTreeIter *iter,
591	-- gboolean is_expander, gboolean is_expanded);
592
593	-- Sets the cell renderer based on the tree_model and iter. That
594	-- is, for every attribute mapping in tree_column, it will get a
595	-- value from the set column on the iter, and use that value to set
596	-- the attribute on the cell renderer. This is used primarily by
597	-- the GtkTreeView.
598
599	-- tree_column : 	A GtkTreeViewColumn.
600	
601	-- tree_model : 	The GtkTreeModel to to get the cell renderers attributes from.
602	
603	-- iter : 	The GtkTreeIter to to get the cell renderer's attributes from.
604	
605	-- is_expander : 	TRUE, if the row has children
606	
607	-- is_expanded : 	TRUE, if the row has visible children
608	
609	cell_size: TUPLE[INTEGER,INTEGER,INTEGER,INTEGER] is
610			-- x_offset,y_offset,width,height needed to render the
611			-- column.
612		local an_x_offset,an_y_offset,a_width,an_height: INTEGER
613		do
614			-- Obtains the width and height needed to render the
615			-- column. This is used primarily by the GtkTreeView.
616			-- tree_column : 	A GtkTreeViewColumn.
617			-- cell_area : 	The area a cell in the column will be allocated, or NULL
618			-- x_offset : 	location to return x offset of a cell relative to cell_area, or NULL
619			-- y_offset : 	location to return y offset of a cell relative to cell_area, or NULL
620			-- width : 	location to return width needed to render a cell, or NULL
621			-- height : 	location to return height needed to render a cell, or NULL
622			gtk_tree_view_column_cell_get_size (handle, default_pointer,
623															$an_x_offset,$an_y_offset,$a_width,$an_height)
624			create Result.make_4 (an_x_offset,an_y_offset,a_width,an_height)
625		end			
626			
627	-- TODO: gtk_tree_view_column_cell_get_position ()
628
629	-- gboolean gtk_tree_view_column_cell_get_position
630	-- (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell_renderer,
631	-- gint *start_pos, gint *width);
632
633	-- Obtains the horizontal position and size of a cell in a
634	-- column. If the cell is not found in the column, start_pos and
635	-- width are not changed and FALSE is returned.
636	
637	-- tree_column : 	a GtkTreeViewColumn
638	-- cell_renderer : 	a GtkCellRenderer
639	-- start_pos : 	return location for the horizontal position of cell within tree_column, may be NULL
640	-- width : 	return location for the width of cell, may be NULL
641	-- Returns : 	TRUE if cell belongs to tree_column.
642
643	is_cell_visible: BOOLEAN is
644			-- Is any of the cells packed into the tree_column visible?
645			-- For this to be meaningful, you must first initialize the
646			-- cells with `set_cell_data'.
647		do
648			Result:= gtk_tree_view_column_cell_is_visible(handle).to_boolean
649		end
650
651	focus_cell (a_cell_renderer: GTK_CELL_RENDERER) is
652			-- Sets the current keyboard focus to be at cell, if the
653			-- column contains 2 or more editable and activatable cells.
654		do
655			gtk_tree_view_column_focus_cell (handle, a_cell_renderer.handle)
656		end
657
658	queue_resize is
659			-- Flags the column, and the cell renderers added to this column, to have their sizes renegotiated.
660		do
661			gtk_tree_view_column_queue_resize(handle)
662		end
663
664feature -- TODO: Properties and signals
665	--   "alignment"            gfloat                : Read / Write
666	--   "clickable"            gboolean              : Read / Write
667	--   "expand"               gboolean              : Read / Write
668	--   "fixed-width"          gint                  : Read / Write
669	--   "max-width"            gint                  : Read / Write
670	--   "min-width"            gint                  : Read / Write
671	--   "reorderable"          gboolean              : Read / Write
672	--   "resizable"            gboolean              : Read / Write
673	--   "sizing"               GtkTreeViewColumnSizing  : Read / Write
674	--   "sort-indicator"       gboolean              : Read / Write
675	--   "sort-order"           GtkSortType           : Read / Write
676	--   "spacing"              gint                  : Read / Write
677	--   "title"                gchararray            : Read / Write
678	--   "visible"              gboolean              : Read / Write
679	--   "widget"               GtkWidget             : Read / Write
680	--   "width"                gint                  : Read
681
682	-- Signals
683
684	-- "clicked"   void        user_function      (GtkTreeViewColumn *treeviewcolumn,
685	--                                             gpointer user_data);
686
687	-- The "alignment" property
688
689	--   "alignment"            gfloat                : Read / Write
690
691	-- X Alignment of the column header text or widget.
692
693	-- Allowed values: [0,1]
694
695	-- Default value: 0
696	-- The "clickable" property
697
698	--   "clickable"            gboolean              : Read / Write
699
700	-- Whether the header can be clicked.
701
702	-- Default value: FALSE
703	-- The "expand" property
704
705	--   "expand"               gboolean              : Read / Write
706
707	-- Column gets share of extra width allocated to the widget.
708
709	-- Default value: FALSE
710	-- The "fixed-width" property
711
712	--   "fixed-width"          gint                  : Read / Write
713
714	-- Current fixed width of the column.
715
716	-- Allowed values: >= 1
717
718	-- Default value: 1
719	-- The "max-width" property
720
721	--   "max-width"            gint                  : Read / Write
722
723	-- Maximum allowed width of the column.
724
725	-- Allowed values: >= -1
726
727	-- Default value: -1
728	-- The "min-width" property
729
730	--   "min-width"            gint                  : Read / Write
731
732	-- Minimum allowed width of the column.
733
734	-- Allowed values: >= -1
735
736	-- Default value: -1
737	-- The "reorderable" property
738
739	--   "reorderable"          gboolean              : Read / Write
740
741	-- Whether the column can be reordered around the headers.
742
743	-- Default value: FALSE
744	-- The "resizable" property
745
746	--   "resizable"            gboolean              : Read / Write
747
748	-- Column is user-resizable.
749
750	-- Default value: FALSE
751	-- The "sizing" property
752
753	--   "sizing"               GtkTreeViewColumnSizing  : Read / Write
754
755	-- Resize mode of the column.
756
757	-- Default value: GTK_TREE_VIEW_COLUMN_GROW_ONLY
758	-- The "sort-indicator" property
759
760	--   "sort-indicator"       gboolean              : Read / Write
761
762	-- Whether to show a sort indicator.
763
764	-- Default value: FALSE
765	-- The "sort-order" property
766
767	--   "sort-order"           GtkSortType           : Read / Write
768
769	-- Sort direction the sort indicator should indicate.
770
771	-- Default value: GTK_SORT_ASCENDING
772	-- The "spacing" property
773
774	--   "spacing"              gint                  : Read / Write
775
776	-- Space which is inserted between cells.
777
778	-- Allowed values: >= 0
779
780	-- Default value: 0
781	-- The "title" property
782
783	--   "title"                gchararray            : Read / Write
784
785	-- Title to appear in column header.
786
787	-- Default value: ""
788	-- The "visible" property
789
790	--   "visible"              gboolean              : Read / Write
791
792	-- Whether to display the column.
793
794	-- Default value: TRUE
795	-- The "widget" property
796
797	--   "widget"               GtkWidget             : Read / Write
798
799	-- Widget to put in column header button instead of column title.
800	-- The "width" property
801
802	--   "width"                gint                  : Read
803
804	-- Current width of the column.
805
806	-- Allowed values: >= 0
807
808	-- Default value: 0
809	-- Signal Details
810	-- The "clicked" signal
811
812	-- void        user_function                  (GtkTreeViewColumn *treeviewcolumn,
813	--                                             gpointer user_data);
814
815	-- treeviewcolumn : 	the object which received the signal.
816	-- user_data : 	user data set when the signal handler was connected.
817feature -- struct size
818	struct_size: INTEGER is
819		external "C inline use <gtk/gtk.h>"
820		alias "sizeof(GtkTreeViewColumn)"
821		end
822end