Reference Manual
Inti Logo
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

Inti::Gtk::TreeViewColumn Class Reference

A GtkTreeViewColumn C++ wrapper class. More...

#include <inti/gtk/treeviewcolumn.h>

Inheritance diagram for Inti::Gtk::TreeViewColumn:

Inti::Gtk::Object Inti::G::Object Inti::G::TypeInstance Inti::MemoryHandler Inti::ReferencedBase List of all members.

Public Types

Public Member Functions

Constructors
Accessors
Methods
Property Proxies
Signal Proxies

Protected Member Functions

Constructors
Signal Handlers

Detailed Description

A GtkTreeViewColumn C++ wrapper class.

A TreeViewColumn is the object that TreeView uses to organize the vertical columns in the tree view. It needs to know the name of the column to label for the user, what type of cell renderer to use, and which piece of data to retrieve from the model for a given row.


Member Typedef Documentation

typedef Slot3<void, CellRenderer&, TreeModel*, const TreeIter&> Inti::Gtk::TreeViewColumn::CellDataSlot
 

Signature of the callback slot to be called to set the properties of a cell instead of just using the straight mapping between the cell and the model.

Example: Method signature for CellDataSlot.

             void method(CellRenderer& cell, TreeModel* tree_model, const TreeIter& iter);
            
             // cell: The CellRenderer that is being rendered by tree_column.
             // tree_model: The TreeModel being rendered.
             // iter: A TreeIter of the current row rendered.
This is useful for customizing the cell renderer. For example, a function might get an integer from the tree_model, and render it to the "text" attribute of "cell" by converting it to its written equivilent. This is set by calling set_cell_data_func().


Constructor & Destructor Documentation

Inti::Gtk::TreeViewColumn::TreeViewColumn GtkTreeViewColumn *  tree_column,
bool  reference = false
[explicit, protected]
 

Construct a new TreeViewColumn from an existing GtkTreeViewColumn.

Parameters:
tree_column A pointer to a GtkTreeViewColumn.
reference Set false if the initial reference count is floating, set true if it's not.

The tree_column can be a newly created GtkTreeViewColumn or an existing GtkTreeViewColumn (see G::Object::Object).

Inti::Gtk::TreeViewColumn::TreeViewColumn const String title,
CellRenderer cell,
... 
 

Construct a new tree column with a number of default values.

Parameters:
title The title to set the header to.
cell The CellRenderer.
... A null-terminated list of attribute/column pairs.

This is equivalent to calling set_title(), pack_start(), and set_attributes() on the newly created column. Here's a simple example:
             enum { TEXT_COLUMN, COLOR_COLUMN, N_COLUMNS };
             ...
             Gtk::CellRendererText  *cell = new Gtk::CellRendererText();
             Gtk::TreeViewColumn *column = new Gtk::TreeViewColumn("Title", cell, 
                                                                   "text", TEXT_COLUMN, 
                                                                   "foreground", COLOR_COLUMN, 0);

Inti::Gtk::TreeViewColumn::TreeViewColumn const String title,
CellRenderer cell,
const std::map< int, String > &  attributes
 

Construct a new tree column with a number of default values.

Parameters:
title The title to set the header to.
cell The CellRenderer.
attributes A reference to a map of column/attribute pairs.

This is equivalent to calling set_title(), pack_start(), and set_attributes() on the newly created column. Here's a simple example:

             enum { TEXT_COLUMN, COLOR_COLUMN, N_COLUMNS };
             ...
             Gtk::CellRendererText  *cell = new Gtk::CellRendererText();
            
             typedef std::map<int, String> attributes;
             Attributes attributes;
             attributes.insert(Attributes::value_type(TEXT_COLUMN, "text"));
             attributes.insert(Attributes::value_type(COLOR_COLUMN, "foreground"));
            
             Gtk::TreeViewColumn *column = new Gtk::TreeViewColumn("Title", cell, attributes);


Member Function Documentation

void Inti::Gtk::TreeViewColumn::add_attribute CellRenderer cell,
const String attribute,
int  column
 

Adds an attribute mapping to the list in the tree column.

Parameters:
cell The CellRenderer to set attributes on.
attribute An attribute on the renderer.
column The column position on the model to get the attribute from.

The column is the column of the model to get a value from, and the attribute is the parameter on cell to be set from the value. So for example if column 2 of the model contains strings, you could have the "text" attribute of a CellRendererText get its values from column 2.

void Inti::Gtk::TreeViewColumn::cell_get_size const Gdk::Rectangle cell_area,
int *  x_offset,
int *  y_offset,
int *  width,
int *  height
const
 

Obtains the width and height needed to render the column.

Parameters:
cell_area The area a cell in the column will be allocated, or null.
x_offset The location to return X offset of a cell relative to cell_area, or null.
y_offset The location to return Y offset of a cell relative to cell_area, or null.
width The location to return width needed to render a cell, or null.
height The location to return height needed to render a cell, or null.

This is used primarily by the Gtk::TreeView.

bool Inti::Gtk::TreeViewColumn::cell_is_visible  )  const
 

Returns true if any of the cells packed into the tree column are visible.

Returns:
true if any of the cells packed into the tree_column are currently visible.

For this to be meaningful, you must first initialize the cells with cell_set_cell_data().

void Inti::Gtk::TreeViewColumn::cell_set_cell_data const TreeModel model,
const TreeIter iter,
bool  is_expander,
bool  is_expanded
 

Sets the cell renderer based on the tree model and iter.

Parameters:
model The TreeModel to to get the cell renderers attributes from.
iter The TreeIter to to get the cell renderer's attributes from.
is_expander Set true if the row has children.
is_expanded Set true if the row has visible children.

That is, for every attribute mapping in the tree column, it will get a value from the set column on the iter, and use that value to set the attribute on the cell renderer. This is used primarily by the Gtk::TreeView.

void Inti::Gtk::TreeViewColumn::clear_attributes CellRenderer cell  ) 
 

Clears all existing attributes previously set with set_attributes().

Parameters:
cell A CellRenderer to clear the attribute mapping on.

void Inti::Gtk::TreeViewColumn::clicked  ) 
 

Emits the "clicked" signal on the column.

This method will only work if the tree column is clickable.

void Inti::Gtk::TreeViewColumn::focus_cell CellRenderer cell  ) 
 

Sets the current keyboard focus to be at cell, if the column contains 2 or more editable and activatable cells.

Parameters:
cell A CellRenderer.

bool Inti::Gtk::TreeViewColumn::get_cell_renderers std::vector< CellRenderer * > &  cell_list  )  const
 

Gets a list of all the cell renderers in the column, in no particular order.

Parameters:
cell_list A reference to a vector of CellRenderer* to hold the list of cell renderers.
Returns:
true if cell_list is not empty.

int Inti::Gtk::TreeViewColumn::get_fixed_width  )  const
 

Gets the fixed width of the column.

This value may not be the actual width of the column on the screen, just what is requested.

int Inti::Gtk::TreeViewColumn::get_sort_column_id  )  const
 

Gets the logical sort_column_id that the model sorts on when this column is selected for sorting (see set_sort_column_id()).

Returns:
The current sort_column_id for this column, or -1 if this column can't be used for sorting.

bool Inti::Gtk::TreeViewColumn::get_sort_indicator  )  const
 

Gets the value set by set_sort_indicator().

Returns:
Whether the sort indicator arrow is displayed.

SortType Inti::Gtk::TreeViewColumn::get_sort_order  )  const
 

Gets the value set by set_sort_order().

Returns:
The sort order the sort indicator is indicating.

bool Inti::Gtk::TreeViewColumn::get_visible  )  const
 

Returns true if the tree column is visible.

Returns:
Whether the column is visible or not.

If the tree column is visible, then the tree will show the column.

Widget* Inti::Gtk::TreeViewColumn::get_widget  )  const
 

Returns the Widget in the button on the column header.

Returns:
The Widget in the column header, or null.

If a custom widget has not been set then null is returned.

void Inti::Gtk::TreeViewColumn::pack_end CellRenderer cell,
bool  expand = true
 

Adds the cell to end of the column.

Parameters:
cell The CellRenderer.
expand true if cell is to be given extra space allocated to box.

If expand is false, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is true.

void Inti::Gtk::TreeViewColumn::pack_start CellRenderer cell,
bool  expand = true
 

Packs the cell into the beginning of the column.

Parameters:
cell The CellRenderer.
expand true if cell is to be given extra space allocated to box.

If expand is false, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is true.

void Inti::Gtk::TreeViewColumn::set_alignment float  xalign  ) 
 

Sets the alignment of the title or custom widget inside the column header.

Parameters:
xalign The alignment, which is between [0.0 and 1.0] inclusive.

The alignment determines its location inside the button - 0.0 for left, 0.5 for center, 1.0 for right.

void Inti::Gtk::TreeViewColumn::set_attributes CellRenderer cell,
const std::map< int, String > &  attributes
 

Sets the attributes in the list as the attributes of the tree column.

Parameters:
cell The CellRenderer.
attributes A reference to a map of column/attribute pairs.

The declaration order is reversed in the map, i.e. column/attribute, because maps require the unique key value (column) to come first.

void Inti::Gtk::TreeViewColumn::set_attributes CellRenderer cell,
... 
 

Sets the attributes in the list as the attributes of the tree column.

Parameters:
cell The CellRenderer.
... A null-terminated list of attribute/column pairs.

The attributes should be in attribute/column order, as in add_attribute(). All existing attributes are removed, and replaced with the new attributes.

void Inti::Gtk::TreeViewColumn::set_cell_data_slot CellRenderer cell,
const CellDataSlot slot
 

Sets the CellDataSlot to use for the column.

Parameters:
cell A CellRenderer.
slot The CellDataSlot to use.

This method is used instead of the standard attributes mapping for setting the column value, and should set the value of the tree column's cell renderer as appropriate. slot may be null to remove an older one.

void Inti::Gtk::TreeViewColumn::set_clickable bool  active  ) 
 

Sets the header to be active if active is true.

Parameters:
active true if the header is active.

When the header is active, then it can take keyboard focus, and can be clicked.

void Inti::Gtk::TreeViewColumn::set_fixed_width int  fixed_width  ) 
 

Sets the size of the column in pixels.

Parameters:
fixed_width The size to set tree_column to. Must be greater than 0.

This is only meaningful if the sizing type is TREE_VIEW_COLUMN_FIXED. The size of the column is clamped to the min/max width for the column. Please note that the min/max width of the column doesn't actually affect the "fixed_width" property of the widget, just the actual size when displayed.

void Inti::Gtk::TreeViewColumn::set_max_width int  max_width  ) 
 

Sets the maximum width of the tree column.

Parameters:
max_width The maximum width of the column in pixels, or -1.

If max_width is -1, then the maximum width is unset. Note, the column can actually be wider than max_width if it's the last column in a view. In this case, the column expands to fill any extra space.

void Inti::Gtk::TreeViewColumn::set_min_width int  min_width  ) 
 

Sets the minimum width of the tree column.

Parameters:
min_width The minimum width of the column in pixels, or -1.

If min_width is -1, then the minimum width is unset.

void Inti::Gtk::TreeViewColumn::set_reorderable bool  reorderable  ) 
 

If reorderable is true, then the column can be reordered by the end user dragging the header.

Parameters:
reorderable true if the column can be reordered.

void Inti::Gtk::TreeViewColumn::set_resizable bool  resizable  ) 
 

If resizable is true, then the user can explicitly resize the column by grabbing the outer edge of the column button.

Parameters:
resizable true if the column can be resized.

If resizable is true and sizing mode of the column is TREE_VIEW_COLUMN_AUTOSIZE, then the sizing mode is changed to TREE_VIEW_COLUMN_GROW_ONLY.

void Inti::Gtk::TreeViewColumn::set_sizing TreeViewColumnSizing  type  ) 
 

Sets the growth behavior of the tree column to type.

Parameters:
type The TreeViewColumnSizing.

void Inti::Gtk::TreeViewColumn::set_sort_column_id int  sort_column_id  ) 
 

Sets the logical sort_column_id that this column sorts on when this column is selected for sorting.

Parameters:
sort_column_id The sort_column_id of the model to sort on.

Setting the logical sort_column_id makes the column header clickable. You probably only want to use set_sort_column_id(). The other sorting methods exist to allow for custom sorting.

void Inti::Gtk::TreeViewColumn::set_sort_indicator bool  setting  ) 
 

Call this method with a setting of true to display an arrow in the header button indicating the column is sorted.

Parameters:
setting true to display an indicator that the column is sorted.

Call set_sort_order() to change the direction of the arrow.

void Inti::Gtk::TreeViewColumn::set_sort_order SortType  order  ) 
 

Changes the appearance of the sort indicator.

Parameters:
order The sort order that the sort indicator should indicate.

This does not actually sort the model. Use set_sort_column_id() if you want automatic sorting support. This method is primarily for custom sorting behavior, and should be used in conjunction with Gtk::TreeSortable::set_sort_column() to do that. For custom models, the mechanism will vary.

The sort indicator changes direction to indicate normal sort or reverse sort. Note that you must have the sort indicator enabled to see anything when calling this method; see set_sort_indicator().

void Inti::Gtk::TreeViewColumn::set_spacing int  spacing  ) 
 

Sets the spacing field of the tree column, which is the number of pixels to place between cell renderers packed into it.

Parameters:
spacing The distance between cell renderers in pixels.

void Inti::Gtk::TreeViewColumn::set_title const String title  ) 
 

Sets the title of the tree column.

Parameters:
title The title of the tree column.

If a custom widget has been set, then this value is ignored.

void Inti::Gtk::TreeViewColumn::set_visible bool  visible  ) 
 

Sets the visibility of the tree column.

Parameters:
visible true if the tree column is visible.

void Inti::Gtk::TreeViewColumn::set_widget Widget widget  ) 
 

Sets the widget in the header to be widget.

Parameters:
widget A child Widget, or null.

If widget is null, then the header button is set with a Label set to the title of tree_column.


The documentation for this class was generated from the following file: Main Page - Footer


Generated on Sun Sep 14 20:08:22 2003 for Inti by doxygen 1.3.2 written by Dimitri van Heesch, © 1997-2002