New upstream version 3.23.2

This commit is contained in:
Andrea Azzarone
2018-08-09 13:46:53 +03:00
882 changed files with 323996 additions and 311120 deletions

View File

@ -3,12 +3,12 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GtkContainer: GTK+ 3 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
<link rel="up" href="AbstractObjects.html" title="Abstract Base Classes">
<link rel="prev" href="GtkWidget.html" title="GtkWidget">
<link rel="next" href="GtkBin.html" title="GtkBin">
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -477,7 +477,7 @@
<a name="GtkContainer.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GtkContainer implements
AtkImplementor and <a class="link" href="GtkBuildable.html" title="GtkBuildable">GtkBuildable</a>.</p>
AtkImplementorIface and <a class="link" href="GtkBuildable.html" title="GtkBuildable">GtkBuildable</a>.</p>
</div>
<div class="refsect1">
<a name="GtkContainer.includes"></a><h2>Includes</h2>
@ -537,59 +537,119 @@ every widget request at least enough space to display all of its content at all
<p>When <a class="link" href="GtkWidget.html#gtk-widget-get-preferred-height" title="gtk_widget_get_preferred_height ()"><code class="function">gtk_widget_get_preferred_height()</code></a> is called on a container that is height-for-width,
the container must return the height for its minimum width. This is easily achieved by
simply calling the reverse apis implemented for itself as follows:</p>
<div class="informalexample"><pre class="programlisting">
static void
foo_container_get_preferred_height (GtkWidget *widget,
gint *min_height,
gint *nat_height)
{
if (i_am_in_height_for_width_mode)
{
gint min_width;
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">foo_container_get_preferred_height</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">widget</span><span class="symbol">,</span>
<span class="normal"> </span><span class="usertype">gint</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">min_height</span><span class="symbol">,</span>
<span class="normal"> </span><span class="usertype">gint</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">nat_height</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i_am_in_height_for_width_mode</span><span class="symbol">)</span>
<span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="usertype">gint</span><span class="normal"> min_width</span><span class="symbol">;</span>
<span class="normal"> </span><span class="function">GTK_WIDGET_GET_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">)-&gt;</span><span class="function">get_preferred_width</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">,</span>
<span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">min_width</span><span class="symbol">,</span>
<span class="normal"> NULL</span><span class="symbol">);</span>
<span class="normal"> </span><span class="function">GTK_WIDGET_GET_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">)-&gt;</span><span class="normal">get_preferred_height_for_width</span>
<span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">,</span>
<span class="normal"> min_width</span><span class="symbol">,</span>
<span class="normal"> min_height</span><span class="symbol">,</span>
<span class="normal"> nat_height</span><span class="symbol">);</span>
<span class="normal"> </span><span class="cbracket">}</span>
<span class="normal"> </span><span class="keyword">else</span>
<span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="symbol">...</span><span class="normal"> many containers support both </span><span class="usertype">request</span><span class="normal"> modes</span><span class="symbol">,</span><span class="normal"> execute the</span>
<span class="normal"> </span><span class="usertype">real</span><span class="normal"> width</span><span class="symbol">-</span><span class="keyword">for</span><span class="symbol">-</span><span class="normal">height request here by returning the</span>
<span class="normal"> collective heights of all widgets that are stacked</span>
<span class="normal"> </span><span class="function">vertically</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">or whatever is appropriate </span><span class="keyword">for</span><span class="normal"> </span><span class="usertype">this</span><span class="normal"> container</span><span class="symbol">)</span>
<span class="normal"> </span><span class="symbol">...</span>
<span class="normal"> </span><span class="cbracket">}</span>
<span class="cbracket">}</span></pre></td>
</tr>
</tbody>
</table>
</div>
GTK_WIDGET_GET_CLASS (widget)-&gt;get_preferred_width (widget,
&amp;min_width,
NULL);
GTK_WIDGET_GET_CLASS (widget)-&gt;get_preferred_height_for_width
(widget,
min_width,
min_height,
nat_height);
}
else
{
... many containers support both request modes, execute the
real width-for-height request here by returning the
collective heights of all widgets that are stacked
vertically (or whatever is appropriate for this container)
...
}
}
</pre></div>
<p></p>
<p>Similarly, when <a class="link" href="GtkWidget.html#gtk-widget-get-preferred-width-for-height" title="gtk_widget_get_preferred_width_for_height ()"><code class="function">gtk_widget_get_preferred_width_for_height()</code></a> is called for a container or widget
that is height-for-width, it then only needs to return the base minimum width like so:</p>
<div class="informalexample"><pre class="programlisting">
static void
foo_container_get_preferred_width_for_height (GtkWidget *widget,
gint for_height,
gint *min_width,
gint *nat_width)
{
if (i_am_in_height_for_width_mode)
{
GTK_WIDGET_GET_CLASS (widget)-&gt;get_preferred_width (widget,
min_width,
nat_width);
}
else
{
... execute the real width-for-height request here based on
the required width of the children collectively if the
container were to be allocated the said height ...
}
}
</pre></div>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">foo_container_get_preferred_width_for_height</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">widget</span><span class="symbol">,</span>
<span class="normal"> </span><span class="usertype">gint</span><span class="normal"> for_height</span><span class="symbol">,</span>
<span class="normal"> </span><span class="usertype">gint</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">min_width</span><span class="symbol">,</span>
<span class="normal"> </span><span class="usertype">gint</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">nat_width</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i_am_in_height_for_width_mode</span><span class="symbol">)</span>
<span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="function">GTK_WIDGET_GET_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">)-&gt;</span><span class="function">get_preferred_width</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">,</span>
<span class="normal"> min_width</span><span class="symbol">,</span>
<span class="normal"> nat_width</span><span class="symbol">);</span>
<span class="normal"> </span><span class="cbracket">}</span>
<span class="normal"> </span><span class="keyword">else</span>
<span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="symbol">...</span><span class="normal"> execute the </span><span class="usertype">real</span><span class="normal"> width</span><span class="symbol">-</span><span class="keyword">for</span><span class="symbol">-</span><span class="normal">height request here based on</span>
<span class="normal"> the required width of the children collectively </span><span class="keyword">if</span><span class="normal"> the</span>
<span class="normal"> container were to be allocated the </span><span class="usertype">said</span><span class="normal"> height </span><span class="symbol">...</span>
<span class="normal"> </span><span class="cbracket">}</span>
<span class="cbracket">}</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p>Height for width requests are generally implemented in terms of a virtual allocation
of widgets in the input orientation. Assuming an height-for-width request mode, a container
@ -651,23 +711,45 @@ for regular properties.</p>
&lt;widget&gt; elements, one for each child that should be added to the focus
chain. The ”name” attribute gives the id of the widget.</p>
<p>An example of these properties in UI definitions:</p>
<div class="informalexample"><pre class="programlisting">
&lt;object class="GtkBox"&gt;
&lt;child&gt;
&lt;object class="GtkEntry" id="entry1"/&gt;
&lt;packing&gt;
&lt;property name="pack-type"&gt;start&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
&lt;object class="GtkEntry" id="entry2"/&gt;
&lt;/child&gt;
&lt;focus-chain&gt;
&lt;widget name="entry1"/&gt;
&lt;widget name="entry2"/&gt;
&lt;/focus-chain&gt;
&lt;/object&gt;
</pre></div>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkBox"</span><span class="symbol">&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkEntry"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"entry1"</span><span class="symbol">/&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"pack-type"</span><span class="symbol">&gt;</span><span class="normal">start</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkEntry"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"entry2"</span><span class="symbol">/&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">focus</span><span class="symbol">-</span><span class="normal">chain</span><span class="symbol">&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">widget</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"entry1"</span><span class="symbol">/&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">widget</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"entry2"</span><span class="symbol">/&gt;</span>
<span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">focus</span><span class="symbol">-</span><span class="normal">chain</span><span class="symbol">&gt;</span>
<span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p></p>
</div>
</div>
@ -1818,7 +1900,7 @@ gtk_container_propagate_draw (<em class="parameter"><code><a class="link" href="
<em class="parameter"><code><span class="type">cairo_t</span> *cr</code></em>);</pre>
<p>When a container receives a call to the draw function, it must send
synthetic <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a> calls to all children that dont have their
own <a href="../html/gdk3-Windows.html#GdkWindow-struct"><span class="type">GdkWindows</span></a>. This function provides a convenient way of doing this.
own <span class="type">GdkWindows</span>. This function provides a convenient way of doing this.
A container, when it receives a call to its <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a> function,
calls <a class="link" href="GtkContainer.html#gtk-container-propagate-draw" title="gtk_container_propagate_draw ()"><code class="function">gtk_container_propagate_draw()</code></a> once for each child, passing in
the <em class="parameter"><code>cr</code></em>
@ -2358,6 +2440,6 @@ user_function (<a class="link" href="GtkContainer.html" title="GtkContainer"><sp
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.27</div>
<hr>Generated by GTK-Doc V1.28</div>
</body>
</html>