fix bugs in the code.
Mon Mar 25 11:31:41 2002 Jonathan Blandford <jrb@redhat.com> * gtk/tree_widget.sgml: fix bugs in the code.
This commit is contained in:

committed by
Jonathan Blandford

parent
7cc14762b9
commit
742f3e324e
@ -1,3 +1,7 @@
|
|||||||
|
Mon Mar 25 11:31:41 2002 Jonathan Blandford <jrb@redhat.com>
|
||||||
|
|
||||||
|
* gtk/tree_widget.sgml: fix bugs in the code.
|
||||||
|
|
||||||
2002-03-20 Cody Russell <cody@jhu.edu>
|
2002-03-20 Cody Russell <cody@jhu.edu>
|
||||||
|
|
||||||
* gtk/tree_widget.sgml: Much expanded overview of the tree.
|
* gtk/tree_widget.sgml: Much expanded overview of the tree.
|
||||||
|
@ -102,11 +102,12 @@ gtk_tree_store_append (store, &iter, NULL); /* Acquire an iterator */
|
|||||||
gtk_tree_store_set (store, &iter,
|
gtk_tree_store_set (store, &iter,
|
||||||
TITLE_COLUMN, "The Principle of Reason",
|
TITLE_COLUMN, "The Principle of Reason",
|
||||||
AUTHOR_COLUMN, "Martin Heidegger",
|
AUTHOR_COLUMN, "Martin Heidegger",
|
||||||
CHECKED_COLUMN, FALSE);
|
CHECKED_COLUMN, FALSE
|
||||||
|
-1);
|
||||||
]]></programlisting></informalexample>
|
]]></programlisting></informalexample>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Notice that the last argument is FALSE. This is always done because
|
Notice that the last argument is -1. This is always done because
|
||||||
this is a variable-argument function and it needs to know when to stop
|
this is a variable-argument function and it needs to know when to stop
|
||||||
processing arguments. It can be used to set the data in any or all
|
processing arguments. It can be used to set the data in any or all
|
||||||
columns in a given row.
|
columns in a given row.
|
||||||
@ -126,33 +127,35 @@ gtk_tree_store_set (store, &iter1,
|
|||||||
TITLE_COLUMN, "The Art of Computer Programming",
|
TITLE_COLUMN, "The Art of Computer Programming",
|
||||||
AUTHOR_COLUMN, "Donald E. Knuth",
|
AUTHOR_COLUMN, "Donald E. Knuth",
|
||||||
CHECKED_COLUMN, FALSE,
|
CHECKED_COLUMN, FALSE,
|
||||||
NULL);
|
-1);
|
||||||
|
|
||||||
gtk_tree_store_append (store, &iter2, &iter1); /* Acquire a child iterator */
|
gtk_tree_store_append (store, &iter2, &iter1); /* Acquire a child iterator */
|
||||||
gtk_tree_store_set (store, &iter2,
|
gtk_tree_store_set (store, &iter2,
|
||||||
TITLE_COLUMN, "Volume 1: Fundamental Algorithms",
|
TITLE_COLUMN, "Volume 1: Fundamental Algorithms",
|
||||||
NULL);
|
-1);
|
||||||
|
|
||||||
gtk_tree_store_append (store, &iter2, &iter1);
|
gtk_tree_store_append (store, &iter2, &iter1);
|
||||||
gtk_tree_store_set (store, &iter2,
|
gtk_tree_store_set (store, &iter2,
|
||||||
TITLE_COLUMN, "Volume 2: Seminumerical Algorithms",
|
TITLE_COLUMN, "Volume 2: Seminumerical Algorithms",
|
||||||
NULL);
|
-1);
|
||||||
|
|
||||||
gtk_tree_store_append (store, &iter2, &iter1);
|
gtk_tree_store_append (store, &iter2, &iter1);
|
||||||
gtk_tree_store_set (store, &iter2,
|
gtk_tree_store_set (store, &iter2,
|
||||||
TITLE_COLUMN, "Volume 3: Sorting and Searching",
|
TITLE_COLUMN, "Volume 3: Sorting and Searching",
|
||||||
NULL);
|
-1);
|
||||||
]]></programlisting></informalexample>
|
]]></programlisting></informalexample>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Creating the view component</title>
|
<title>Creating the view component</title>
|
||||||
<para>
|
<para>
|
||||||
While there are two different models to choose from, there is only one
|
While there are several different models to choose from, there is
|
||||||
view widget to deal with. It works with either the list or the tree store.
|
only one view widget to deal with. It works with either the list
|
||||||
Setting up a <link linkend="GtkTreeView">GtkTreeView</link> is not a
|
or the tree store. Setting up a <link
|
||||||
difficult matter. It needs a <link linkend="GtkTreeModel">GtkTreeModel</link>
|
linkend="GtkTreeView">GtkTreeView</link> is not a difficult
|
||||||
to know where to retrieve its data from.
|
matter. It needs a <link
|
||||||
|
linkend="GtkTreeModel">GtkTreeModel</link> to know where to
|
||||||
|
retrieve its data from.
|
||||||
</para>
|
</para>
|
||||||
<informalexample><programlisting><![CDATA[
|
<informalexample><programlisting><![CDATA[
|
||||||
GtkWidget *tree;
|
GtkWidget *tree;
|
||||||
@ -163,9 +166,26 @@ tree = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
|
|||||||
<refsect2>
|
<refsect2>
|
||||||
<title>Columns and cell renderers</title>
|
<title>Columns and cell renderers</title>
|
||||||
<para>
|
<para>
|
||||||
Cell renderers are used to draw the data in the tree model in a certain way.
|
Once the <link linkend="GtkTreeView">GtkTreeView</link> widget
|
||||||
There are three cell renderers to choose from with GTK+ 2.0, but the
|
has a model, it will need to know how to display the model. It
|
||||||
adventuresome hacker may write more.
|
does this with columns and cell renderers.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Cell renderers are used to draw the data in the tree model in a
|
||||||
|
way. There are three cell renderers that come with GTK+ 2.0.
|
||||||
|
They are the <link
|
||||||
|
linkend="GtkCellRendererText">GtkCellRendererText</link>, <link
|
||||||
|
linkend="GtkCellRendererPixbuf">GtkCellRendererPixbuf</link> and
|
||||||
|
the <link
|
||||||
|
linkend="GtkCellRendererToggle">GtkCellRendererToggle</link>.
|
||||||
|
It is relatively easy to write a custom renderer.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
A <link linkend="GtkTreeViewColumn">GtkTreeViewColumn</link> is the
|
||||||
|
object that GtkTreeView 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.
|
||||||
</para>
|
</para>
|
||||||
<informalexample><programlisting><![CDATA[
|
<informalexample><programlisting><![CDATA[
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
@ -178,13 +198,6 @@ column = gtk_tree_view_column_new_with_attributes ("Author",
|
|||||||
NULL);
|
NULL);
|
||||||
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
|
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
|
||||||
]]></programlisting></informalexample>
|
]]></programlisting></informalexample>
|
||||||
<para>
|
|
||||||
A <link linkend="GtkTreeViewColumn">GtkTreeViewColumn</link> is the
|
|
||||||
object that GtkTreeView 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.
|
|
||||||
</para>
|
|
||||||
<para>
|
<para>
|
||||||
At this point, all the steps in creating a displayable tree have been
|
At this point, all the steps in creating a displayable tree have been
|
||||||
covered. The model is created, data is stored in it, a tree view is
|
covered. The model is created, data is stored in it, a tree view is
|
||||||
@ -283,12 +296,13 @@ setup_tree (void)
|
|||||||
/* Create a cell render and arbitrarily make it red for demonstration
|
/* Create a cell render and arbitrarily make it red for demonstration
|
||||||
* purposes */
|
* purposes */
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
g_object_set (G_OBJECT (renderer), "foreground", "red", NULL);
|
g_object_set (G_OBJECT (renderer),
|
||||||
|
"foreground", "red",
|
||||||
|
NULL);
|
||||||
|
|
||||||
/* Create a column, associating the "text" attribute of the
|
/* Create a column, associating the "text" attribute of the
|
||||||
* cell_renderer to the first column of the model */
|
* cell_renderer to the first column of the model */
|
||||||
column = gtk_tree_view_column_new_with_attributes ("Author",
|
column = gtk_tree_view_column_new_with_attributes ("Author", renderer,
|
||||||
renderer,
|
|
||||||
"text", AUTHOR_COLUMN,
|
"text", AUTHOR_COLUMN,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user