New upstream version 3.24.34

This commit is contained in:
Simon McVittie
2022-06-01 16:13:05 +01:00
473 changed files with 306973 additions and 738624 deletions

View File

@ -150,8 +150,8 @@ If <span class="structname">GtkFoo</span> isn't a toplevel window, then
<tr>
<td class="listing_lines" align="right"><pre>1
2</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">foo</span> <span class="o">=</span> <span class="n">gtk_foo_new</span> <span class="p">();</span>
<span class="n">gtk_widget_destroy</span> <span class="p">(</span><span class="n">foo</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">foo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_foo_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
<span class="n">gtk_widget_destroy</span><span class="w"> </span><span class="p">(</span><span class="n">foo</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -174,8 +174,8 @@ creating it:
<tr>
<td class="listing_lines" align="right"><pre>1
2</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">foo</span> <span class="o">=</span> <span class="n">gtk_foo_new</span> <span class="p">();</span>
<span class="n">g_object_ref_sink</span> <span class="p">(</span><span class="n">foo</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">foo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_foo_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
<span class="n">g_object_ref_sink</span><span class="w"> </span><span class="p">(</span><span class="n">foo</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -192,8 +192,8 @@ reference:
<tr>
<td class="listing_lines" align="right"><pre>1
2</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">gtk_widget_destroy</span> <span class="p">(</span><span class="n">foo</span><span class="p">);</span>
<span class="n">g_object_unref</span> <span class="p">(</span><span class="n">foo</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">gtk_widget_destroy</span><span class="w"> </span><span class="p">(</span><span class="n">foo</span><span class="p">);</span><span class="w"></span>
<span class="n">g_object_unref</span><span class="w"> </span><span class="p">(</span><span class="n">foo</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -299,19 +299,19 @@ Code using these macros ends up looking like this:
11
12
13</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="cp">#include</span> <span class="cpf">&lt;gi18n.h&gt;</span><span class="cp"></span>
<td class="listing_code"><pre class="programlisting"><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;gi18n.h&gt;</span><span class="cp"></span>
<span class="k">static</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">global_variable</span> <span class="o">=</span> <span class="n">N_</span><span class="p">(</span><span class="s">&quot;Translate this string&quot;</span><span class="p">);</span>
<span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">global_variable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">N_</span><span class="p">(</span><span class="s">&quot;Translate this string&quot;</span><span class="p">);</span><span class="w"></span>
<span class="k">static</span> <span class="kt">void</span>
<span class="nf">make_widgets</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">GtkWidget</span> <span class="o">*</span><span class="n">label1</span><span class="p">;</span>
<span class="n">GtkWidget</span> <span class="o">*</span><span class="n">label2</span><span class="p">;</span>
<span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"></span>
<span class="nf">make_widgets</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">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">label1</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">label2</span><span class="p">;</span><span class="w"></span>
<span class="n">label1</span> <span class="o">=</span> <span class="n">gtk_label_new</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;Another string to translate&quot;</span><span class="p">));</span>
<span class="n">label2</span> <span class="o">=</span> <span class="n">gtk_label_new</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="n">global_variable</span><span class="p">));</span>
<span class="p">...</span></pre></td>
<span class="w"> </span><span class="n">label1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_label_new</span><span class="w"> </span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;Another string to translate&quot;</span><span class="p">));</span><span class="w"></span>
<span class="w"> </span><span class="n">label2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_label_new</span><span class="w"> </span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="n">global_variable</span><span class="p">));</span><span class="w"></span>
<span class="p">...</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -411,24 +411,24 @@ writes the content of a IS0-8859-1 encoded text file to
16
17
18</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">gchar</span> <span class="o">*</span><span class="n">text</span><span class="p">,</span> <span class="o">*</span><span class="n">utf8_text</span><span class="p">;</span>
<span class="n">gsize</span> <span class="n">length</span><span class="p">;</span>
<span class="n">GError</span> <span class="o">*</span><span class="n">error</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
<td class="listing_code"><pre class="programlisting"><span class="n">gchar</span><span class="w"> </span><span class="o">*</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">utf8_text</span><span class="p">;</span><span class="w"></span>
<span class="n">gsize</span><span class="w"> </span><span class="n">length</span><span class="p">;</span><span class="w"></span>
<span class="n">GError</span><span class="w"> </span><span class="o">*</span><span class="n">error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span><span class="w"></span>
<span class="k">if</span> <span class="p">(</span><span class="n">g_file_get_contents</span> <span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">text</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">length</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">utf8_text</span> <span class="o">=</span> <span class="n">g_convert</span> <span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">length</span><span class="p">,</span> <span class="s">&quot;UTF-8&quot;</span><span class="p">,</span> <span class="s">&quot;ISO-8859-1&quot;</span><span class="p">,</span>
<span class="nb">NULL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">error</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">error</span> <span class="o">!=</span> <span class="nb">NULL</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">fprintf</span> <span class="p">(</span><span class="s">&quot;Couldn&#39;t convert file %s to UTF-8</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">);</span>
<span class="n">g_error_free</span> <span class="p">(</span><span class="n">error</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="n">g_print</span> <span class="p">(</span><span class="n">utf8_text</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="n">fprintf</span> <span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">&quot;Unable to read file %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">);</span></pre></td>
<span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">g_file_get_contents</span><span class="w"> </span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">length</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</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">utf8_text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_convert</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="n">length</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;UTF-8&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;ISO-8859-1&quot;</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="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">error</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">error</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="nb">NULL</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">fprintf</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Couldn&#39;t convert file %s to UTF-8</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">filename</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">g_error_free</span><span class="w"> </span><span class="p">(</span><span class="n">error</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="k">else</span><span class="w"></span>
<span class="w"> </span><span class="n">g_print</span><span class="w"> </span><span class="p">(</span><span class="n">utf8_text</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="k">else</span><span class="w"></span>
<span class="w"> </span><span class="n">fprintf</span><span class="w"> </span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;Unable to read file %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">filename</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -493,11 +493,11 @@ a string literal:
3
4
5</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">g_print</span> <span class="p">(</span><span class="s">&quot;direct UTF-8: ©&quot;</span><span class="p">);</span>
<span class="n">g_print</span> <span class="p">(</span><span class="s">&quot;escaped UTF-8: </span><span class="se">\302\251</span><span class="s">&quot;</span><span class="p">);</span>
<span class="n">text</span> <span class="o">=</span> <span class="n">g_convert</span> <span class="p">(</span><span class="s">&quot;runtime conversion: ©&quot;</span><span class="p">,</span> <span class="mi">-1</span><span class="p">,</span> <span class="s">&quot;ISO-8859-1&quot;</span><span class="p">,</span> <span class="s">&quot;UTF-8&quot;</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
<span class="n">g_print</span><span class="p">(</span><span class="n">text</span><span class="p">);</span>
<span class="n">g_free</span> <span class="p">(</span><span class="n">text</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">g_print</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;direct UTF-8: ©&quot;</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">&quot;escaped UTF-8: </span><span class="se">\302\251</span><span class="s">&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_convert</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;runtime conversion: ©&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;ISO-8859-1&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;UTF-8&quot;</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span>
<span class="n">g_print</span><span class="p">(</span><span class="n">text</span><span class="p">);</span><span class="w"></span>
<span class="n">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -547,8 +547,8 @@ code:
<tr>
<td class="listing_lines" align="right"><pre>1
2</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">gdk_window_set_events</span> <span class="p">(</span><span class="n">gdk_window</span><span class="p">,</span>
<span class="n">GDK_BUTTON_PRESS_MASK</span> <span class="o">|</span> <span class="n">GDK_BUTTON_RELEASE_MASK</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">gdk_window_set_events</span><span class="w"> </span><span class="p">(</span><span class="n">gdk_window</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="n">GDK_BUTTON_PRESS_MASK</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">GDK_BUTTON_RELEASE_MASK</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -563,8 +563,8 @@ while in C++ you must write:
<tr>
<td class="listing_lines" align="right"><pre>1
2</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">gdk_window_set_events</span> <span class="p">(</span><span class="n">gdk_window</span><span class="p">,</span>
<span class="p">(</span><span class="n">GdkEventMask</span><span class="p">)</span> <span class="n">GDK_BUTTON_PRESS_MASK</span> <span class="o">|</span> <span class="n">GDK_BUTTON_RELEASE_MASK</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">gdk_window_set_events</span><span class="w"> </span><span class="p">(</span><span class="n">gdk_window</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="p">(</span><span class="n">GdkEventMask</span><span class="p">)</span><span class="w"> </span><span class="n">GDK_BUTTON_PRESS_MASK</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">GDK_BUTTON_RELEASE_MASK</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -640,12 +640,12 @@ To draw a piece of text, use a Pango layout and <code class="function">pango_cai
4
5
6</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">layout</span> <span class="o">=</span> <span class="n">gtk_widget_create_pango_layout</span> <span class="p">(</span><span class="n">widget</span><span class="p">,</span> <span class="n">text</span><span class="p">);</span>
<span class="n">fontdesc</span> <span class="o">=</span> <span class="n">pango_font_description_from_string</span> <span class="p">(</span><span class="s">&quot;Luxi Mono 12&quot;</span><span class="p">);</span>
<span class="n">pango_layout_set_font_description</span> <span class="p">(</span><span class="n">layout</span><span class="p">,</span> <span class="n">fontdesc</span><span class="p">);</span>
<span class="n">pango_cairo_show_layout</span> <span class="p">(</span><span class="n">cr</span><span class="p">,</span> <span class="n">layout</span><span class="p">);</span>
<span class="n">pango_font_description_free</span> <span class="p">(</span><span class="n">fontdesc</span><span class="p">);</span>
<span class="n">g_object_unref</span> <span class="p">(</span><span class="n">layout</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">layout</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_widget_create_pango_layout</span><span class="w"> </span><span class="p">(</span><span class="n">widget</span><span class="p">,</span><span class="w"> </span><span class="n">text</span><span class="p">);</span><span class="w"></span>
<span class="n">fontdesc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pango_font_description_from_string</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Luxi Mono 12&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">pango_layout_set_font_description</span><span class="w"> </span><span class="p">(</span><span class="n">layout</span><span class="p">,</span><span class="w"> </span><span class="n">fontdesc</span><span class="p">);</span><span class="w"></span>
<span class="n">pango_cairo_show_layout</span><span class="w"> </span><span class="p">(</span><span class="n">cr</span><span class="p">,</span><span class="w"> </span><span class="n">layout</span><span class="p">);</span><span class="w"></span>
<span class="n">pango_font_description_free</span><span class="w"> </span><span class="p">(</span><span class="n">fontdesc</span><span class="p">);</span><span class="w"></span>
<span class="n">g_object_unref</span><span class="w"> </span><span class="p">(</span><span class="n">layout</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -685,12 +685,12 @@ To obtain the size of a piece of text, use a Pango layout and
4
5
6</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">layout</span> <span class="o">=</span> <span class="n">gtk_widget_create_pango_layout</span> <span class="p">(</span><span class="n">widget</span><span class="p">,</span> <span class="n">text</span><span class="p">);</span>
<span class="n">fontdesc</span> <span class="o">=</span> <span class="n">pango_font_description_from_string</span> <span class="p">(</span><span class="s">&quot;Luxi Mono 12&quot;</span><span class="p">);</span>
<span class="n">pango_layout_set_font_description</span> <span class="p">(</span><span class="n">layout</span><span class="p">,</span> <span class="n">fontdesc</span><span class="p">);</span>
<span class="n">pango_layout_get_pixel_size</span> <span class="p">(</span><span class="n">layout</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">width</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">height</span><span class="p">);</span>
<span class="n">pango_font_description_free</span> <span class="p">(</span><span class="n">fontdesc</span><span class="p">);</span>
<span class="n">g_object_unref</span> <span class="p">(</span><span class="n">layout</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">layout</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_widget_create_pango_layout</span><span class="w"> </span><span class="p">(</span><span class="n">widget</span><span class="p">,</span><span class="w"> </span><span class="n">text</span><span class="p">);</span><span class="w"></span>
<span class="n">fontdesc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pango_font_description_from_string</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Luxi Mono 12&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">pango_layout_set_font_description</span><span class="w"> </span><span class="p">(</span><span class="n">layout</span><span class="p">,</span><span class="w"> </span><span class="n">fontdesc</span><span class="p">);</span><span class="w"></span>
<span class="n">pango_layout_get_pixel_size</span><span class="w"> </span><span class="p">(</span><span class="n">layout</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">width</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">height</span><span class="p">);</span><span class="w"></span>
<span class="n">pango_font_description_free</span><span class="w"> </span><span class="p">(</span><span class="n">fontdesc</span><span class="p">);</span><span class="w"></span>
<span class="n">g_object_unref</span><span class="w"> </span><span class="p">(</span><span class="n">layout</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -732,7 +732,7 @@ variable, which keeps the compiler from optimizing the call away.
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="k">volatile</span> <span class="n">GType</span> <span class="n">dummy</span> <span class="o">=</span> <span class="n">GTK_TYPE_BLAH</span><span class="p">;</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="k">volatile</span><span class="w"> </span><span class="n">GType</span><span class="w"> </span><span class="n">dummy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">GTK_TYPE_BLAH</span><span class="p">;</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -756,10 +756,10 @@ How do I create a transparent toplevel window ?
<p>
To make a window transparent, it needs to use a visual which supports that.
This is done by getting the RGBA visual of the screen with
<code class="function">gdk_screen_get_rgba_visual()</code> and setting it on the window. Note that
<code class="function">gdk_screen_get_rgba_visual()</code> will return <code class="literal">NULL</code> if transparent windows
<a href="../html/GdkScreen.html#gdk-screen-get-rgba-visual"><code class="function">gdk_screen_get_rgba_visual()</code></a> and setting it on the window. Note that
<a href="../html/GdkScreen.html#gdk-screen-get-rgba-visual"><code class="function">gdk_screen_get_rgba_visual()</code></a> will return <code class="literal">NULL</code> if transparent windows
are not supported on the screen, you should fall back to
<code class="function">gdk_screen_get_system_visual()</code> in that case. Additionally, note that this
<a href="../html/GdkScreen.html#gdk-screen-get-system-visual"><code class="function">gdk_screen_get_system_visual()</code></a> in that case. Additionally, note that this
will change from screen to screen, so it needs to be repeated whenever the
window is moved to a different screen.
</p>
@ -774,13 +774,13 @@ window is moved to a different screen.
5
6
7</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">GdkVisual</span> <span class="o">*</span><span class="n">visual</span><span class="p">;</span>
<td class="listing_code"><pre class="programlisting"><span class="n">GdkVisual</span><span class="w"> </span><span class="o">*</span><span class="n">visual</span><span class="p">;</span><span class="w"></span>
<span class="n">visual</span> <span class="o">=</span> <span class="n">gdk_screen_get_rgba_visual</span> <span class="p">(</span><span class="n">screen</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">visual</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">)</span>
<span class="n">visual</span> <span class="o">=</span> <span class="n">gdk_screen_get_system_visual</span> <span class="p">(</span><span class="n">screen</span><span class="p">);</span>
<span class="n">visual</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gdk_screen_get_rgba_visual</span><span class="w"> </span><span class="p">(</span><span class="n">screen</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">visual</span><span class="w"> </span><span class="o">==</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">visual</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gdk_screen_get_system_visual</span><span class="w"> </span><span class="p">(</span><span class="n">screen</span><span class="p">);</span><span class="w"></span>
<span class="n">gtk_widget_set_visual</span> <span class="p">(</span><span class="n">GTK_WIDGET</span> <span class="p">(</span><span class="n">window</span><span class="p">),</span> <span class="n">visual</span><span class="p">);</span></pre></td>
<span class="n">gtk_widget_set_visual</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_WIDGET</span><span class="w"> </span><span class="p">(</span><span class="n">window</span><span class="p">),</span><span class="w"> </span><span class="n">visual</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -920,10 +920,10 @@ achieve. One option is <a class="link" href="GtkWidget.html#gtk-widget-override-
2
3
4</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">PangoFontDesc</span> <span class="o">*</span><span class="n">font_desc</span> <span class="o">=</span> <span class="n">pango_font_description_new</span> <span class="p">();</span>
<span class="n">pango_font_description_set_size</span> <span class="p">(</span><span class="n">font_desc</span><span class="p">,</span> <span class="mi">40</span><span class="p">);</span>
<span class="n">gtk_widget_override_font</span> <span class="p">(</span><span class="n">widget</span><span class="p">,</span> <span class="n">font</span><span class="p">);</span>
<span class="n">pango_font_description_free</span> <span class="p">(</span><span class="n">font_desc</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">PangoFontDesc</span><span class="w"> </span><span class="o">*</span><span class="n">font_desc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pango_font_description_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
<span class="n">pango_font_description_set_size</span><span class="w"> </span><span class="p">(</span><span class="n">font_desc</span><span class="p">,</span><span class="w"> </span><span class="mi">40</span><span class="p">);</span><span class="w"></span>
<span class="n">gtk_widget_override_font</span><span class="w"> </span><span class="p">(</span><span class="n">widget</span><span class="p">,</span><span class="w"> </span><span class="n">font</span><span class="p">);</span><span class="w"></span>
<span class="n">pango_font_description_free</span><span class="w"> </span><span class="p">(</span><span class="n">font_desc</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -940,7 +940,7 @@ If you want to make the text of a label larger, you can use
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">gtk_label_set_markup</span> <span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="s">&quot;&lt;big&gt;big text&lt;/big&gt;&quot;</span><span class="p">);</span></pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">gtk_label_set_markup</span><span class="w"> </span><span class="p">(</span><span class="n">label</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;&lt;big&gt;big text&lt;/big&gt;&quot;</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -1016,15 +1016,15 @@ or <a class="link" href="GtkTextIter.html#gtk-text-iter-get-text" title="gtk_tex
7
8
9</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">GtkTextIter</span> <span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">;</span>
<span class="n">GtkTextBuffer</span> <span class="o">*</span><span class="n">buffer</span><span class="p">;</span>
<span class="kt">char</span> <span class="o">*</span><span class="n">text</span><span class="p">;</span>
<td class="listing_code"><pre class="programlisting"><span class="n">GtkTextIter</span><span class="w"> </span><span class="n">start</span><span class="p">,</span><span class="w"> </span><span class="n">end</span><span class="p">;</span><span class="w"></span>
<span class="n">GtkTextBuffer</span><span class="w"> </span><span class="o">*</span><span class="n">buffer</span><span class="p">;</span><span class="w"></span>
<span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">text</span><span class="p">;</span><span class="w"></span>
<span class="n">buffer</span> <span class="o">=</span> <span class="n">gtk_text_view_get_buffer</span> <span class="p">(</span><span class="n">GTK_TEXT_VIEW</span> <span class="p">(</span><span class="n">text_view</span><span class="p">));</span>
<span class="n">gtk_text_buffer_get_bounds</span> <span class="p">(</span><span class="n">buffer</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">start</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">end</span><span class="p">);</span>
<span class="n">text</span> <span class="o">=</span> <span class="n">gtk_text_iter_get_text</span> <span class="p">(</span><span class="o">&amp;</span><span class="n">start</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">end</span><span class="p">);</span>
<span class="cm">/* use text */</span>
<span class="n">g_free</span> <span class="p">(</span><span class="n">text</span><span class="p">);</span></pre></td>
<span class="n">buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_text_view_get_buffer</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TEXT_VIEW</span><span class="w"> </span><span class="p">(</span><span class="n">text_view</span><span class="p">));</span><span class="w"></span>
<span class="n">gtk_text_buffer_get_bounds</span><span class="w"> </span><span class="p">(</span><span class="n">buffer</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">start</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">end</span><span class="p">);</span><span class="w"></span>
<span class="n">text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_text_iter_get_text</span><span class="w"> </span><span class="p">(</span><span class="o">&amp;</span><span class="n">start</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">end</span><span class="p">);</span><span class="w"></span>
<span class="cm">/* use text */</span><span class="w"></span>
<span class="n">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">);</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>
@ -1227,70 +1227,70 @@ The following example demonstrates this:
62
63
64</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="k">enum</span>
<span class="p">{</span>
<span class="n">DOUBLE_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">DOUBLE_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">GtkListStore</span> <span class="o">*</span><span class="n">mycolumns</span><span class="p">;</span>
<span class="n">GtkTreeView</span> <span class="o">*</span><span class="n">treeview</span><span class="p">;</span>
<span class="n">GtkListStore</span><span class="w"> </span><span class="o">*</span><span class="n">mycolumns</span><span class="p">;</span><span class="w"></span>
<span class="n">GtkTreeView</span><span class="w"> </span><span class="o">*</span><span class="n">treeview</span><span class="p">;</span><span class="w"></span>
<span class="kt">void</span>
<span class="nf">my_cell_double_to_text</span> <span class="p">(</span><span class="n">GtkTreeViewColumn</span> <span class="o">*</span><span class="n">tree_column</span><span class="p">,</span>
<span class="n">GtkCellRenderer</span> <span class="o">*</span><span class="n">cell</span><span class="p">,</span>
<span class="n">GtkTreeModel</span> <span class="o">*</span><span class="n">tree_model</span><span class="p">,</span>
<span class="n">GtkTreeIter</span> <span class="o">*</span><span class="n">iter</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">GtkCellRendererText</span> <span class="o">*</span><span class="n">cell_text</span> <span class="o">=</span> <span class="p">(</span><span class="n">GtkCellRendererText</span> <span class="o">*</span><span class="p">)</span><span class="n">cell</span><span class="p">;</span>
<span class="n">gdouble</span> <span class="n">d</span><span class="p">;</span>
<span class="n">gchar</span> <span class="o">*</span><span class="n">text</span><span class="p">;</span>
<span class="kt">void</span><span class="w"></span>
<span class="nf">my_cell_double_to_text</span><span class="w"> </span><span class="p">(</span><span class="n">GtkTreeViewColumn</span><span class="w"> </span><span class="o">*</span><span class="n">tree_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">cell</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">tree_model</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="n">GtkTreeIter</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">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">GtkCellRendererText</span><span class="w"> </span><span class="o">*</span><span class="n">cell_text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">GtkCellRendererText</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">cell</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="n">gdouble</span><span class="w"> </span><span class="n">d</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">text</span><span class="p">;</span><span class="w"></span>
<span class="cm">/* Get the double value from the model. */</span>
<span class="n">gtk_tree_model_get</span> <span class="p">(</span><span class="n">tree_model</span><span class="p">,</span> <span class="n">iter</span><span class="p">,</span> <span class="p">(</span><span class="n">gint</span><span class="p">)</span><span class="n">data</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">d</span><span class="p">,</span> <span class="mi">-1</span><span class="p">);</span>
<span class="cm">/* Now we can format the value ourselves. */</span>
<span class="n">text</span> <span class="o">=</span> <span class="n">g_strdup_printf</span> <span class="p">(</span><span class="s">&quot;%.2f&quot;</span><span class="p">,</span> <span class="n">d</span><span class="p">);</span>
<span class="n">g_object_set</span> <span class="p">(</span><span class="n">cell</span><span class="p">,</span> <span class="s">&quot;text&quot;</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
<span class="n">g_free</span> <span class="p">(</span><span class="n">text</span><span class="p">);</span>
<span class="p">}</span>
<span class="w"> </span><span class="cm">/* Get the double value from the model. */</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">tree_model</span><span class="p">,</span><span class="w"> </span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">gint</span><span class="p">)</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">d</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="cm">/* Now we can format the value ourselves. */</span><span class="w"></span>
<span class="w"> </span><span class="n">text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_strdup_printf</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;%.2f&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">d</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">cell</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;text&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">text</span><span class="p">,</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">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="kt">void</span>
<span class="nf">set_up_new_columns</span> <span class="p">(</span><span class="n">GtkTreeView</span> <span class="o">*</span><span class="n">myview</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">GtkCellRendererText</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>
<span class="n">GtkListStore</span> <span class="o">*</span><span class="n">mycolumns</span><span class="p">;</span>
<span class="kt">void</span><span class="w"></span>
<span class="nf">set_up_new_columns</span><span class="w"> </span><span class="p">(</span><span class="n">GtkTreeView</span><span class="w"> </span><span class="o">*</span><span class="n">myview</span><span class="p">)</span><span class="w"></span>
<span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">GtkCellRendererText</span><span class="w"> </span><span class="o">*</span><span class="n">renderer</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">GtkListStore</span><span class="w"> </span><span class="o">*</span><span class="n">mycolumns</span><span class="p">;</span><span class="w"></span>
<span class="cm">/* Create the data model and associate it with the given TreeView */</span>
<span class="n">mycolumns</span> <span class="o">=</span> <span class="n">gtk_list_store_new</span> <span class="p">(</span><span class="n">N_COLUMNS</span><span class="p">,</span> <span class="n">G_TYPE_DOUBLE</span><span class="p">);</span>
<span class="n">gtk_tree_view_set_model</span> <span class="p">(</span><span class="n">myview</span><span class="p">,</span> <span class="n">GTK_TREE_MODEL</span> <span class="p">(</span><span class="n">mycolumns</span><span class="p">));</span>
<span class="w"> </span><span class="cm">/* Create the data model and associate it with the given TreeView */</span><span class="w"></span>
<span class="w"> </span><span class="n">mycolumns</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="n">N_COLUMNS</span><span class="p">,</span><span class="w"> </span><span class="n">G_TYPE_DOUBLE</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">gtk_tree_view_set_model</span><span class="w"> </span><span class="p">(</span><span class="n">myview</span><span class="p">,</span><span class="w"> </span><span class="n">GTK_TREE_MODEL</span><span class="w"> </span><span class="p">(</span><span class="n">mycolumns</span><span class="p">));</span><span class="w"></span>
<span class="cm">/* Create a GtkCellRendererText */</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="w"> </span><span class="cm">/* Create a GtkCellRendererText */</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="cm">/* Create a new column that has a title (&quot;Example column&quot;),</span>
<span class="w"> </span><span class="cm">/* Create a new column that has a title (&quot;Example column&quot;),</span>
<span class="cm"> * uses the above created renderer that will render the double</span>
<span class="cm"> * value into text from the associated model&#39;s rows.</span>
<span class="cm"> */</span>
<span class="n">column</span> <span class="o">=</span> <span class="n">gtk_tree_view_column_new</span> <span class="p">();</span>
<span class="n">gtk_tree_view_column_set_title</span> <span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="s">&quot;Example column&quot;</span><span class="p">);</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">gtk_tree_view_column_pack_start</span> <span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">renderer</span><span class="p">,</span> <span class="n">TRUE</span><span class="p">);</span>
<span class="cm"> */</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</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">gtk_tree_view_column_set_title</span><span class="w"> </span><span class="p">(</span><span class="n">column</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;Example column&quot;</span><span class="p">);</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">gtk_tree_view_column_pack_start</span><span class="w"> </span><span class="p">(</span><span class="n">column</span><span class="p">,</span><span class="w"> </span><span class="n">renderer</span><span class="p">,</span><span class="w"> </span><span class="n">TRUE</span><span class="p">);</span><span class="w"></span>
<span class="cm">/* Append the new column after the GtkTreeView&#39;s previous columns. */</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">myview</span><span class="p">),</span> <span class="n">column</span><span class="p">);</span>
<span class="cm">/* Since we created the column by hand, we can set it up for our</span>
<span class="w"> </span><span class="cm">/* Append the new column after the GtkTreeView&#39;s previous columns. */</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">myview</span><span class="p">),</span><span class="w"> </span><span class="n">column</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="cm">/* Since we created the column by hand, we can set it up for our</span>
<span class="cm"> * needs, e.g. set its minimum and maximum width, etc.</span>
<span class="cm"> */</span>
<span class="cm">/* Set up a custom function that will be called when the column content</span>
<span class="cm"> */</span><span class="w"></span>
<span class="w"> </span><span class="cm">/* Set up a custom function that will be called when the column content</span>
<span class="cm"> * is rendered. We use the func_data pointer as an index into our</span>
<span class="cm"> * model. This is convenient when using multi column lists.</span>
<span class="cm"> */</span>
<span class="n">gtk_tree_view_column_set_cell_data_func</span> <span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">renderer</span><span class="p">,</span>
<span class="n">my_cell_double_to_text</span><span class="p">,</span>
<span class="p">(</span><span class="n">gpointer</span><span class="p">)</span><span class="n">DOUBLE_COLUMN</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
<span class="p">}</span></pre></td>
<span class="cm"> */</span><span class="w"></span>
<span class="w"> </span><span class="n">gtk_tree_view_column_set_cell_data_func</span><span class="w"> </span><span class="p">(</span><span class="n">column</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="n">my_cell_double_to_text</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="p">(</span><span class="n">gpointer</span><span class="p">)</span><span class="n">DOUBLE_COLUMN</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span></pre></td>
</tr>
</tbody>
</table>