New upstream version 3.24.34
This commit is contained in:
@ -74,7 +74,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="listing_lines" align="right"><pre>1</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkListStore</span> <span class="o">*</span><span class="n">store</span> <span class="o">=</span> <span class="n">gtk_list_store_new</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">G_TYPE_STRING</span><span class="p">,</span> <span class="n">G_TYPE_BOOLEAN</span><span class="p">);</span></pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkListStore</span><span class="w"> </span><span class="o">*</span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_list_store_new</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">G_TYPE_STRING</span><span class="p">,</span><span class="w"> </span><span class="n">G_TYPE_BOOLEAN</span><span class="p">);</span><span class="w"></span></pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -104,18 +104,18 @@
|
||||
10
|
||||
11
|
||||
12</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">enum</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">TITLE_COLUMN</span><span class="p">,</span>
|
||||
<span class="n">AUTHOR_COLUMN</span><span class="p">,</span>
|
||||
<span class="n">CHECKED_COLUMN</span><span class="p">,</span>
|
||||
<span class="n">N_COLUMNS</span>
|
||||
<span class="p">};</span>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">enum</span><span class="w"></span>
|
||||
<span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">TITLE_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">AUTHOR_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">CHECKED_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">N_COLUMNS</span><span class="w"></span>
|
||||
<span class="p">};</span><span class="w"></span>
|
||||
|
||||
<span class="n">GtkTreeStore</span> <span class="o">*</span><span class="n">store</span> <span class="o">=</span> <span class="n">gtk_tree_store_new</span> <span class="p">(</span><span class="n">N_COLUMNS</span><span class="p">,</span> <span class="cm">/* Total number of columns */</span>
|
||||
<span class="n">G_TYPE_STRING</span><span class="p">,</span> <span class="cm">/* Book title */</span>
|
||||
<span class="n">G_TYPE_STRING</span><span class="p">,</span> <span class="cm">/* Author */</span>
|
||||
<span class="n">G_TYPE_BOOLEAN</span><span class="p">);</span> <span class="cm">/* Is checked out? */</span></pre></td>
|
||||
<span class="n">GtkTreeStore</span><span class="w"> </span><span class="o">*</span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_tree_store_new</span><span class="w"> </span><span class="p">(</span><span class="n">N_COLUMNS</span><span class="p">,</span><span class="w"> </span><span class="cm">/* Total number of columns */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">G_TYPE_STRING</span><span class="p">,</span><span class="w"> </span><span class="cm">/* Book title */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">G_TYPE_STRING</span><span class="p">,</span><span class="w"> </span><span class="cm">/* Author */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">G_TYPE_BOOLEAN</span><span class="p">);</span><span class="w"> </span><span class="cm">/* Is checked out? */</span><span class="w"></span></pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -145,15 +145,15 @@
|
||||
7
|
||||
8
|
||||
9</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkTreeIter</span> <span class="n">iter</span><span class="p">;</span>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="n">gtk_tree_store_append</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span> <span class="cm">/* Acquire an iterator */</span>
|
||||
<span class="n">gtk_tree_store_append</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"> </span><span class="cm">/* Acquire an iterator */</span><span class="w"></span>
|
||||
|
||||
<span class="n">gtk_tree_store_set</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter</span><span class="p">,</span>
|
||||
<span class="n">TITLE_COLUMN</span><span class="p">,</span> <span class="s">"The Principle of Reason"</span><span class="p">,</span>
|
||||
<span class="n">AUTHOR_COLUMN</span><span class="p">,</span> <span class="s">"Martin Heidegger"</span><span class="p">,</span>
|
||||
<span class="n">CHECKED_COLUMN</span><span class="p">,</span> <span class="n">FALSE</span><span class="p">,</span>
|
||||
<span class="mi">-1</span><span class="p">);</span></pre></td>
|
||||
<span class="n">gtk_tree_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">TITLE_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="s">"The Principle of Reason"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">AUTHOR_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="s">"Martin Heidegger"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">CHECKED_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="n">FALSE</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="mi">-1</span><span class="p">);</span><span class="w"></span></pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -199,30 +199,30 @@
|
||||
22
|
||||
23
|
||||
24</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkTreeIter</span> <span class="n">iter1</span><span class="p">;</span> <span class="cm">/* Parent iter */</span>
|
||||
<span class="n">GtkTreeIter</span> <span class="n">iter2</span><span class="p">;</span> <span class="cm">/* Child iter */</span>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter1</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Parent iter */</span><span class="w"></span>
|
||||
<span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter2</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Child iter */</span><span class="w"></span>
|
||||
|
||||
<span class="n">gtk_tree_store_append</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter1</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span> <span class="cm">/* Acquire a top-level iterator */</span>
|
||||
<span class="n">gtk_tree_store_set</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter1</span><span class="p">,</span>
|
||||
<span class="n">TITLE_COLUMN</span><span class="p">,</span> <span class="s">"The Art of Computer Programming"</span><span class="p">,</span>
|
||||
<span class="n">AUTHOR_COLUMN</span><span class="p">,</span> <span class="s">"Donald E. Knuth"</span><span class="p">,</span>
|
||||
<span class="n">CHECKED_COLUMN</span><span class="p">,</span> <span class="n">FALSE</span><span class="p">,</span>
|
||||
<span class="mi">-1</span><span class="p">);</span>
|
||||
<span class="n">gtk_tree_store_append</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter1</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"> </span><span class="cm">/* Acquire a top-level iterator */</span><span class="w"></span>
|
||||
<span class="n">gtk_tree_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter1</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">TITLE_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="s">"The Art of Computer Programming"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">AUTHOR_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="s">"Donald E. Knuth"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">CHECKED_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="n">FALSE</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="mi">-1</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">gtk_tree_store_append</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter2</span><span class="p">,</span> <span class="o">&</span><span class="n">iter1</span><span class="p">);</span> <span class="cm">/* Acquire a child iterator */</span>
|
||||
<span class="n">gtk_tree_store_set</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter2</span><span class="p">,</span>
|
||||
<span class="n">TITLE_COLUMN</span><span class="p">,</span> <span class="s">"Volume 1: Fundamental Algorithms"</span><span class="p">,</span>
|
||||
<span class="mi">-1</span><span class="p">);</span>
|
||||
<span class="n">gtk_tree_store_append</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter2</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter1</span><span class="p">);</span><span class="w"> </span><span class="cm">/* Acquire a child iterator */</span><span class="w"></span>
|
||||
<span class="n">gtk_tree_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter2</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">TITLE_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="s">"Volume 1: Fundamental Algorithms"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="mi">-1</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">gtk_tree_store_append</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter2</span><span class="p">,</span> <span class="o">&</span><span class="n">iter1</span><span class="p">);</span>
|
||||
<span class="n">gtk_tree_store_set</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter2</span><span class="p">,</span>
|
||||
<span class="n">TITLE_COLUMN</span><span class="p">,</span> <span class="s">"Volume 2: Seminumerical Algorithms"</span><span class="p">,</span>
|
||||
<span class="mi">-1</span><span class="p">);</span>
|
||||
<span class="n">gtk_tree_store_append</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter2</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter1</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="n">gtk_tree_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter2</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">TITLE_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="s">"Volume 2: Seminumerical Algorithms"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="mi">-1</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">gtk_tree_store_append</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter2</span><span class="p">,</span> <span class="o">&</span><span class="n">iter1</span><span class="p">);</span>
|
||||
<span class="n">gtk_tree_store_set</span> <span class="p">(</span><span class="n">store</span><span class="p">,</span> <span class="o">&</span><span class="n">iter2</span><span class="p">,</span>
|
||||
<span class="n">TITLE_COLUMN</span><span class="p">,</span> <span class="s">"Volume 3: Sorting and Searching"</span><span class="p">,</span>
|
||||
<span class="mi">-1</span><span class="p">);</span></pre></td>
|
||||
<span class="n">gtk_tree_store_append</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter2</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter1</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="n">gtk_tree_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter2</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">TITLE_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="s">"Volume 3: Sorting and Searching"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="mi">-1</span><span class="p">);</span><span class="w"></span></pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -245,9 +245,9 @@
|
||||
<td class="listing_lines" align="right"><pre>1
|
||||
2
|
||||
3</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkWidget</span> <span class="o">*</span><span class="n">tree</span><span class="p">;</span>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">tree</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="n">tree</span> <span class="o">=</span> <span class="n">gtk_tree_view_new_with_model</span> <span class="p">(</span><span class="n">GTK_TREE_MODEL</span> <span class="p">(</span><span class="n">store</span><span class="p">));</span></pre></td>
|
||||
<span class="n">tree</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_tree_view_new_with_model</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TREE_MODEL</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">));</span><span class="w"></span></pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -285,15 +285,15 @@
|
||||
7
|
||||
8
|
||||
9</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkCellRenderer</span> <span class="o">*</span><span class="n">renderer</span><span class="p">;</span>
|
||||
<span class="n">GtkTreeViewColumn</span> <span class="o">*</span><span class="n">column</span><span class="p">;</span>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="n">GtkCellRenderer</span><span class="w"> </span><span class="o">*</span><span class="n">renderer</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="n">GtkTreeViewColumn</span><span class="w"> </span><span class="o">*</span><span class="n">column</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="n">renderer</span> <span class="o">=</span> <span class="n">gtk_cell_renderer_text_new</span> <span class="p">();</span>
|
||||
<span class="n">column</span> <span class="o">=</span> <span class="n">gtk_tree_view_column_new_with_attributes</span> <span class="p">(</span><span class="s">"Author"</span><span class="p">,</span>
|
||||
<span class="n">renderer</span><span class="p">,</span>
|
||||
<span class="s">"text"</span><span class="p">,</span> <span class="n">AUTHOR_COLUMN</span><span class="p">,</span>
|
||||
<span class="nb">NULL</span><span class="p">);</span>
|
||||
<span class="n">gtk_tree_view_append_column</span> <span class="p">(</span><span class="n">GTK_TREE_VIEW</span> <span class="p">(</span><span class="n">tree</span><span class="p">),</span> <span class="n">column</span><span class="p">);</span></pre></td>
|
||||
<span class="n">renderer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_cell_renderer_text_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
|
||||
<span class="n">column</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_tree_view_column_new_with_attributes</span><span class="w"> </span><span class="p">(</span><span class="s">"Author"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">renderer</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s">"text"</span><span class="p">,</span><span class="w"> </span><span class="n">AUTHOR_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="n">gtk_tree_view_append_column</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TREE_VIEW</span><span class="w"> </span><span class="p">(</span><span class="n">tree</span><span class="p">),</span><span class="w"> </span><span class="n">column</span><span class="p">);</span><span class="w"></span></pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -329,17 +329,17 @@
|
||||
9
|
||||
10
|
||||
11</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="cm">/* Prototype for selection handler callback */</span>
|
||||
<span class="k">static</span> <span class="kt">void</span> <span class="nf">tree_selection_changed_cb</span> <span class="p">(</span><span class="n">GtkTreeSelection</span> <span class="o">*</span><span class="n">selection</span><span class="p">,</span> <span class="n">gpointer</span> <span class="n">data</span><span class="p">);</span>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="cm">/* Prototype for selection handler callback */</span><span class="w"></span>
|
||||
<span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">tree_selection_changed_cb</span><span class="w"> </span><span class="p">(</span><span class="n">GtkTreeSelection</span><span class="w"> </span><span class="o">*</span><span class="n">selection</span><span class="p">,</span><span class="w"> </span><span class="n">gpointer</span><span class="w"> </span><span class="n">data</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* Setup the selection handler */</span>
|
||||
<span class="n">GtkTreeSelection</span> <span class="o">*</span><span class="n">select</span><span class="p">;</span>
|
||||
<span class="cm">/* Setup the selection handler */</span><span class="w"></span>
|
||||
<span class="n">GtkTreeSelection</span><span class="w"> </span><span class="o">*</span><span class="n">select</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="n">select</span> <span class="o">=</span> <span class="n">gtk_tree_view_get_selection</span> <span class="p">(</span><span class="n">GTK_TREE_VIEW</span> <span class="p">(</span><span class="n">tree</span><span class="p">));</span>
|
||||
<span class="n">gtk_tree_selection_set_mode</span> <span class="p">(</span><span class="n">select</span><span class="p">,</span> <span class="n">GTK_SELECTION_SINGLE</span><span class="p">);</span>
|
||||
<span class="n">g_signal_connect</span> <span class="p">(</span><span class="n">G_OBJECT</span> <span class="p">(</span><span class="n">select</span><span class="p">),</span> <span class="s">"changed"</span><span class="p">,</span>
|
||||
<span class="n">G_CALLBACK</span> <span class="p">(</span><span class="n">tree_selection_changed_cb</span><span class="p">),</span>
|
||||
<span class="nb">NULL</span><span class="p">);</span></pre></td>
|
||||
<span class="n">select</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_tree_view_get_selection</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TREE_VIEW</span><span class="w"> </span><span class="p">(</span><span class="n">tree</span><span class="p">));</span><span class="w"></span>
|
||||
<span class="n">gtk_tree_selection_set_mode</span><span class="w"> </span><span class="p">(</span><span class="n">select</span><span class="p">,</span><span class="w"> </span><span class="n">GTK_SELECTION_SINGLE</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="n">g_signal_connect</span><span class="w"> </span><span class="p">(</span><span class="n">G_OBJECT</span><span class="w"> </span><span class="p">(</span><span class="n">select</span><span class="p">),</span><span class="w"> </span><span class="s">"changed"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">G_CALLBACK</span><span class="w"> </span><span class="p">(</span><span class="n">tree_selection_changed_cb</span><span class="p">),</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span></pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -368,22 +368,22 @@
|
||||
14
|
||||
15
|
||||
16</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="kt">void</span>
|
||||
<span class="nf">tree_selection_changed_cb</span> <span class="p">(</span><span class="n">GtkTreeSelection</span> <span class="o">*</span><span class="n">selection</span><span class="p">,</span> <span class="n">gpointer</span> <span class="n">data</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">GtkTreeIter</span> <span class="n">iter</span><span class="p">;</span>
|
||||
<span class="n">GtkTreeModel</span> <span class="o">*</span><span class="n">model</span><span class="p">;</span>
|
||||
<span class="n">gchar</span> <span class="o">*</span><span class="n">author</span><span class="p">;</span>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"></span>
|
||||
<span class="nf">tree_selection_changed_cb</span><span class="w"> </span><span class="p">(</span><span class="n">GtkTreeSelection</span><span class="w"> </span><span class="o">*</span><span class="n">selection</span><span class="p">,</span><span class="w"> </span><span class="n">gpointer</span><span class="w"> </span><span class="n">data</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">GtkTreeModel</span><span class="w"> </span><span class="o">*</span><span class="n">model</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">gchar</span><span class="w"> </span><span class="o">*</span><span class="n">author</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="k">if</span> <span class="p">(</span><span class="n">gtk_tree_selection_get_selected</span> <span class="p">(</span><span class="n">selection</span><span class="p">,</span> <span class="o">&</span><span class="n">model</span><span class="p">,</span> <span class="o">&</span><span class="n">iter</span><span class="p">))</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">gtk_tree_model_get</span> <span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="o">&</span><span class="n">iter</span><span class="p">,</span> <span class="n">AUTHOR_COLUMN</span><span class="p">,</span> <span class="o">&</span><span class="n">author</span><span class="p">,</span> <span class="mi">-1</span><span class="p">);</span>
|
||||
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">gtk_tree_selection_get_selected</span><span class="w"> </span><span class="p">(</span><span class="n">selection</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">))</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">gtk_tree_model_get</span><span class="w"> </span><span class="p">(</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">AUTHOR_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">author</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">g_print</span> <span class="p">(</span><span class="s">"You selected a book by %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">author</span><span class="p">);</span>
|
||||
<span class="w"> </span><span class="n">g_print</span><span class="w"> </span><span class="p">(</span><span class="s">"You selected a book by %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">author</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">g_free</span> <span class="p">(</span><span class="n">author</span><span class="p">);</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span></pre></td>
|
||||
<span class="w"> </span><span class="n">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">author</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span></pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -472,74 +472,74 @@
|
||||
66
|
||||
67
|
||||
68</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">enum</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">TITLE_COLUMN</span><span class="p">,</span>
|
||||
<span class="n">AUTHOR_COLUMN</span><span class="p">,</span>
|
||||
<span class="n">CHECKED_COLUMN</span><span class="p">,</span>
|
||||
<span class="n">N_COLUMNS</span>
|
||||
<span class="p">};</span>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">enum</span><span class="w"></span>
|
||||
<span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">TITLE_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">AUTHOR_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">CHECKED_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">N_COLUMNS</span><span class="w"></span>
|
||||
<span class="p">};</span><span class="w"></span>
|
||||
|
||||
<span class="kt">void</span>
|
||||
<span class="nf">setup_tree</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">GtkTreeStore</span> <span class="o">*</span><span class="n">store</span><span class="p">;</span>
|
||||
<span class="n">GtkWidget</span> <span class="o">*</span><span class="n">tree</span><span class="p">;</span>
|
||||
<span class="n">GtkTreeViewColumn</span> <span class="o">*</span><span class="n">column</span><span class="p">;</span>
|
||||
<span class="n">GtkCellRenderer</span> <span class="o">*</span><span class="n">renderer</span><span class="p">;</span>
|
||||
<span class="kt">void</span><span class="w"></span>
|
||||
<span class="nf">setup_tree</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">GtkTreeStore</span><span class="w"> </span><span class="o">*</span><span class="n">store</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">tree</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">GtkTreeViewColumn</span><span class="w"> </span><span class="o">*</span><span class="n">column</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">GtkCellRenderer</span><span class="w"> </span><span class="o">*</span><span class="n">renderer</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* Create a model. We are using the store model for now, though we</span>
|
||||
<span class="cm"> * could use any other GtkTreeModel */</span>
|
||||
<span class="n">store</span> <span class="o">=</span> <span class="n">gtk_tree_store_new</span> <span class="p">(</span><span class="n">N_COLUMNS</span><span class="p">,</span>
|
||||
<span class="n">G_TYPE_STRING</span><span class="p">,</span>
|
||||
<span class="n">G_TYPE_STRING</span><span class="p">,</span>
|
||||
<span class="n">G_TYPE_BOOLEAN</span><span class="p">);</span>
|
||||
<span class="w"> </span><span class="cm">/* Create a model. We are using the store model for now, though we</span>
|
||||
<span class="cm"> * could use any other GtkTreeModel */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_tree_store_new</span><span class="w"> </span><span class="p">(</span><span class="n">N_COLUMNS</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">G_TYPE_STRING</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">G_TYPE_STRING</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">G_TYPE_BOOLEAN</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* custom function to fill the model with data */</span>
|
||||
<span class="n">populate_tree_model</span> <span class="p">(</span><span class="n">store</span><span class="p">);</span>
|
||||
<span class="w"> </span><span class="cm">/* custom function to fill the model with data */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">populate_tree_model</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* Create a view */</span>
|
||||
<span class="n">tree</span> <span class="o">=</span> <span class="n">gtk_tree_view_new_with_model</span> <span class="p">(</span><span class="n">GTK_TREE_MODEL</span> <span class="p">(</span><span class="n">store</span><span class="p">));</span>
|
||||
<span class="w"> </span><span class="cm">/* Create a view */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">tree</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_tree_view_new_with_model</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TREE_MODEL</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">));</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* The view now holds a reference. We can get rid of our own</span>
|
||||
<span class="cm"> * reference */</span>
|
||||
<span class="n">g_object_unref</span> <span class="p">(</span><span class="n">G_OBJECT</span> <span class="p">(</span><span class="n">store</span><span class="p">));</span>
|
||||
<span class="w"> </span><span class="cm">/* The view now holds a reference. We can get rid of our own</span>
|
||||
<span class="cm"> * reference */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">g_object_unref</span><span class="w"> </span><span class="p">(</span><span class="n">G_OBJECT</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">));</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* Create a cell render and arbitrarily make it red for demonstration</span>
|
||||
<span class="cm"> * purposes */</span>
|
||||
<span class="n">renderer</span> <span class="o">=</span> <span class="n">gtk_cell_renderer_text_new</span> <span class="p">();</span>
|
||||
<span class="n">g_object_set</span> <span class="p">(</span><span class="n">G_OBJECT</span> <span class="p">(</span><span class="n">renderer</span><span class="p">),</span>
|
||||
<span class="s">"foreground"</span><span class="p">,</span> <span class="s">"red"</span><span class="p">,</span>
|
||||
<span class="nb">NULL</span><span class="p">);</span>
|
||||
<span class="w"> </span><span class="cm">/* Create a cell render and arbitrarily make it red for demonstration</span>
|
||||
<span class="cm"> * purposes */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">renderer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_cell_renderer_text_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">g_object_set</span><span class="w"> </span><span class="p">(</span><span class="n">G_OBJECT</span><span class="w"> </span><span class="p">(</span><span class="n">renderer</span><span class="p">),</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s">"foreground"</span><span class="p">,</span><span class="w"> </span><span class="s">"red"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* Create a column, associating the "text" attribute of the</span>
|
||||
<span class="cm"> * cell_renderer to the first column of the model */</span>
|
||||
<span class="n">column</span> <span class="o">=</span> <span class="n">gtk_tree_view_column_new_with_attributes</span> <span class="p">(</span><span class="s">"Author"</span><span class="p">,</span> <span class="n">renderer</span><span class="p">,</span>
|
||||
<span class="s">"text"</span><span class="p">,</span> <span class="n">AUTHOR_COLUMN</span><span class="p">,</span>
|
||||
<span class="nb">NULL</span><span class="p">);</span>
|
||||
<span class="w"> </span><span class="cm">/* Create a column, associating the "text" attribute of the</span>
|
||||
<span class="cm"> * cell_renderer to the first column of the model */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">column</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_tree_view_column_new_with_attributes</span><span class="w"> </span><span class="p">(</span><span class="s">"Author"</span><span class="p">,</span><span class="w"> </span><span class="n">renderer</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s">"text"</span><span class="p">,</span><span class="w"> </span><span class="n">AUTHOR_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* Add the column to the view. */</span>
|
||||
<span class="n">gtk_tree_view_append_column</span> <span class="p">(</span><span class="n">GTK_TREE_VIEW</span> <span class="p">(</span><span class="n">tree</span><span class="p">),</span> <span class="n">column</span><span class="p">);</span>
|
||||
<span class="w"> </span><span class="cm">/* Add the column to the view. */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">gtk_tree_view_append_column</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TREE_VIEW</span><span class="w"> </span><span class="p">(</span><span class="n">tree</span><span class="p">),</span><span class="w"> </span><span class="n">column</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* Second column.. title of the book. */</span>
|
||||
<span class="n">renderer</span> <span class="o">=</span> <span class="n">gtk_cell_renderer_text_new</span> <span class="p">();</span>
|
||||
<span class="n">column</span> <span class="o">=</span> <span class="n">gtk_tree_view_column_new_with_attributes</span> <span class="p">(</span><span class="s">"Title"</span><span class="p">,</span>
|
||||
<span class="n">renderer</span><span class="p">,</span>
|
||||
<span class="s">"text"</span><span class="p">,</span> <span class="n">TITLE_COLUMN</span><span class="p">,</span>
|
||||
<span class="nb">NULL</span><span class="p">);</span>
|
||||
<span class="n">gtk_tree_view_append_column</span> <span class="p">(</span><span class="n">GTK_TREE_VIEW</span> <span class="p">(</span><span class="n">tree</span><span class="p">),</span> <span class="n">column</span><span class="p">);</span>
|
||||
<span class="w"> </span><span class="cm">/* Second column.. title of the book. */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">renderer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_cell_renderer_text_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">column</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_tree_view_column_new_with_attributes</span><span class="w"> </span><span class="p">(</span><span class="s">"Title"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">renderer</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s">"text"</span><span class="p">,</span><span class="w"> </span><span class="n">TITLE_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">gtk_tree_view_append_column</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TREE_VIEW</span><span class="w"> </span><span class="p">(</span><span class="n">tree</span><span class="p">),</span><span class="w"> </span><span class="n">column</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* Last column.. whether a book is checked out. */</span>
|
||||
<span class="n">renderer</span> <span class="o">=</span> <span class="n">gtk_cell_renderer_toggle_new</span> <span class="p">();</span>
|
||||
<span class="n">column</span> <span class="o">=</span> <span class="n">gtk_tree_view_column_new_with_attributes</span> <span class="p">(</span><span class="s">"Checked out"</span><span class="p">,</span>
|
||||
<span class="n">renderer</span><span class="p">,</span>
|
||||
<span class="s">"active"</span><span class="p">,</span> <span class="n">CHECKED_COLUMN</span><span class="p">,</span>
|
||||
<span class="nb">NULL</span><span class="p">);</span>
|
||||
<span class="n">gtk_tree_view_append_column</span> <span class="p">(</span><span class="n">GTK_TREE_VIEW</span> <span class="p">(</span><span class="n">tree</span><span class="p">),</span> <span class="n">column</span><span class="p">);</span>
|
||||
<span class="w"> </span><span class="cm">/* Last column.. whether a book is checked out. */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">renderer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_cell_renderer_toggle_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">column</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_tree_view_column_new_with_attributes</span><span class="w"> </span><span class="p">(</span><span class="s">"Checked out"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">renderer</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s">"active"</span><span class="p">,</span><span class="w"> </span><span class="n">CHECKED_COLUMN</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">gtk_tree_view_append_column</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TREE_VIEW</span><span class="w"> </span><span class="p">(</span><span class="n">tree</span><span class="p">),</span><span class="w"> </span><span class="n">column</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="cm">/* Now we can manipulate the view just like any other GTK widget */</span>
|
||||
<span class="p">...</span>
|
||||
<span class="p">}</span></pre></td>
|
||||
<span class="w"> </span><span class="cm">/* Now we can manipulate the view just like any other GTK widget */</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">...</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span></pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
Reference in New Issue
Block a user