📄 gtkcellrenderer.html
字号:
allows the user to edit the text using a <a class="link" href="GtkEntry.html" title="GtkEntry"><span class="type">GtkEntry</span></a>.To make a cell renderer activatable or editable, you have to implement the <em class="parameter"><code>activate</code></em> or <em class="parameter"><code>start_editing</code></em> virtual functions, respectively.</p></div><div class="refsect1" lang="en"><a name="id3821207"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id3821218"></a><h3><a name="GtkCellRendererState"></a>enum GtkCellRendererState</h3><a class="indexterm" name="id3821231"></a><pre class="programlisting">typedef enum{ GTK_CELL_RENDERER_SELECTED = 1 << 0, GTK_CELL_RENDERER_PRELIT = 1 << 1, GTK_CELL_RENDERER_INSENSITIVE = 1 << 2, /* this flag means the cell is in the sort column/row */ GTK_CELL_RENDERER_SORTED = 1 << 3, GTK_CELL_RENDERER_FOCUSED = 1 << 4} GtkCellRendererState;</pre><p>Tells how a cell is to be rendererd.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><a name="GTK-CELL-RENDERER-SELECTED:CAPS"></a><code class="literal">GTK_CELL_RENDERER_SELECTED</code></span></p></td><td>The cell is currently selected, andprobably has a selection colored background to render to.</td></tr><tr><td><p><span class="term"><a name="GTK-CELL-RENDERER-PRELIT:CAPS"></a><code class="literal">GTK_CELL_RENDERER_PRELIT</code></span></p></td><td>The mouse is hovering over the cell.</td></tr><tr><td><p><span class="term"><a name="GTK-CELL-RENDERER-INSENSITIVE:CAPS"></a><code class="literal">GTK_CELL_RENDERER_INSENSITIVE</code></span></p></td><td>The cell is drawn in an insensitive manner</td></tr><tr><td><p><span class="term"><a name="GTK-CELL-RENDERER-SORTED:CAPS"></a><code class="literal">GTK_CELL_RENDERER_SORTED</code></span></p></td><td>The cell is in a sorted row</td></tr><tr><td><p><span class="term"><a name="GTK-CELL-RENDERER-FOCUSED:CAPS"></a><code class="literal">GTK_CELL_RENDERER_FOCUSED</code></span></p></td><td>The cell is in the focus row.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3821379"></a><h3><a name="GtkCellRendererMode"></a>enum GtkCellRendererMode</h3><a class="indexterm" name="id3821393"></a><pre class="programlisting">typedef enum{ GTK_CELL_RENDERER_MODE_INERT, GTK_CELL_RENDERER_MODE_ACTIVATABLE, GTK_CELL_RENDERER_MODE_EDITABLE} GtkCellRendererMode;</pre><p>Identifies how the user can interact with a particular cell.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><a name="GTK-CELL-RENDERER-MODE-INERT:CAPS"></a><code class="literal">GTK_CELL_RENDERER_MODE_INERT</code></span></p></td><td>The cell is just for displayand cannot be interacted with. Note that this doesn't mean that eg. therow being drawn can't be selected -- just that a particular element ofit cannot be individually modified.</td></tr><tr><td><p><span class="term"><a name="GTK-CELL-RENDERER-MODE-ACTIVATABLE:CAPS"></a><code class="literal">GTK_CELL_RENDERER_MODE_ACTIVATABLE</code></span></p></td><td>The cell can be clicked.</td></tr><tr><td><p><span class="term"><a name="GTK-CELL-RENDERER-MODE-EDITABLE:CAPS"></a><code class="literal">GTK_CELL_RENDERER_MODE_EDITABLE</code></span></p></td><td>The cell can be edited or otherwise modified.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3821489"></a><h3><a name="GtkCellRenderer-struct"></a>GtkCellRenderer</h3><a class="indexterm" name="id3821503"></a><pre class="programlisting">typedef struct _GtkCellRenderer GtkCellRenderer;</pre><p></p></div><hr><div class="refsect2" lang="en"><a name="id3821519"></a><h3><a name="GtkCellRendererClass"></a>GtkCellRendererClass</h3><a class="indexterm" name="id3821532"></a><pre class="programlisting">typedef struct { GtkObjectClass parent_class; /* vtable - not signals */ void (* get_size) (GtkCellRenderer *cell, GtkWidget *widget, GdkRectangle *cell_area, gint *x_offset, gint *y_offset, gint *width, gint *height); void (* render) (GtkCellRenderer *cell, GdkDrawable *window, GtkWidget *widget, GdkRectangle *background_area, GdkRectangle *cell_area, GdkRectangle *expose_area, GtkCellRendererState flags); gboolean (* activate) (GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path, GdkRectangle *background_area, GdkRectangle *cell_area, GtkCellRendererState flags); GtkCellEditable *(* start_editing) (GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path, GdkRectangle *background_area, GdkRectangle *cell_area, GtkCellRendererState flags); /* Signals */ void (* editing_canceled) (GtkCellRenderer *cell); void (* editing_started) (GtkCellRenderer *cell, GtkCellEditable *editable, const gchar *path); /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void);} GtkCellRendererClass;</pre><p></p></div><hr><div class="refsect2" lang="en"><a name="id3821602"></a><h3><a name="gtk-cell-renderer-get-size"></a>gtk_cell_renderer_get_size ()</h3><a class="indexterm" name="id3821615"></a><pre class="programlisting">void gtk_cell_renderer_get_size (<a class="link" href="GtkCellRenderer.html" title="GtkCellRenderer">GtkCellRenderer</a> *cell, <a class="link" href="GtkWidget.html" title="GtkWidget">GtkWidget</a> *widget, <ahref="/usr/share/gtk-doc/html/gdk/gdk-Points-Rectangles-and-Regions.html#GdkRectangle">GdkRectangle</a> *cell_area, <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint">gint</a> *x_offset, <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint">gint</a> *y_offset, <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint">gint</a> *width, <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint">gint</a> *height);</pre><p>Obtains the width and height needed to render the cell. Used by view widgets to determine the appropriate size for the cell_area passed to<a class="link" href="GtkCellRenderer.html#gtk-cell-renderer-render"><code class="function">gtk_cell_renderer_render()</code></a>. If <em class="parameter"><code>cell_area</code></em> is not <ahref="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>, fills in thex and y offsets (if set) of the cell relative to this location. </p><p>Please note that the values set in <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em>, as well as those in <em class="parameter"><code>x_offset</code></em> and <em class="parameter"><code>y_offset</code></em> are inclusive of the xpad and ypad properties.</p><p></p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>cell</code></em> :</span></p></td><td> a <a class="link" href="GtkCellRenderer.html" title="GtkCellRenderer"><span class="type">GtkCellRenderer</span></a></td></tr><tr><td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td><td> the widget the renderer is rendering to</td></tr><tr><td><p><span class="term"><em class="parameter"><code>cell_area</code></em> :</span></p></td><td> The area a cell will be allocated, or <ahref="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a></td></tr><tr><td><p><span class="term"><em class="parameter"><code>x_offset</code></em> :</span></p></td><td> location to return x offset of cell relative to <em class="parameter"><code>cell_area</code></em>, or <ahref="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a></td></tr><tr><td><p><span class="term"><em class="parameter"><code>y_offset</code></em> :</span></p></td><td> location to return y offset of cell relative to <em class="parameter"><code>cell_area</code></em>, or <ahref="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a></td></tr><tr><td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td><td> location to return width needed to render a cell, or <ahref="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a></td></tr><tr><td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td><td> location to return height needed to render a cell, or <ahref="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a></td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3821929"></a><h3><a name="gtk-cell-renderer-render"></a>gtk_cell_renderer_render ()</h3><a class="indexterm" name="id3821942"></a><pre class="programlisting">void gtk_cell_renderer_render (<a class="link" href="GtkCellRenderer.html" title="GtkCellRenderer">GtkCellRenderer</a> *cell, <ahref="/usr/share/gtk-doc/html/gdk/gdk-Windows.html#GdkWindow">GdkWindow</a> *window, <a class="link" href="GtkWidget.html" title="GtkWidget">GtkWidget</a> *widget, <ahref="/usr/share/gtk-doc/html/gdk/gdk-Points-Rectangles-and-Regions.html#GdkRectangle">GdkRectangle</a> *background_area, <ahref="/usr/share/gtk-doc/html/gdk/gdk-Points-Rectangles-and-Regions.html#GdkRectangle">GdkRectangle</a> *cell_area, <ahref="/usr/share/gtk-doc/html/gdk/gdk-Points-Rectangles-and-Regions.html#GdkRectangle">GdkRectangle</a> *expose_area, <a class="link" href="GtkCellRenderer.html#GtkCellRendererState">GtkCellRendererState</a> flags);</pre><p>Invokes the virtual render function of the <a class="link" href="GtkCellRenderer.html" title="GtkCellRenderer"><span class="type">GtkCellRenderer</span></a>. The threepassed-in rectangles are areas of <em class="parameter"><code>window</code></em>. Most renderers will draw within<em class="parameter"><code>cell_area</code></em>; the xalign, yalign, xpad, and ypad fields of the <a class="link" href="GtkCellRenderer.html" title="GtkCellRenderer"><span class="type">GtkCellRenderer</span></a>should be honored with respect to <em class="parameter"><code>cell_area</code></em>. <em class="parameter"><code>background_area</code></em> includes theblank space around the cell, and also the area containing the tree expander;so the <em class="parameter"><code>background_area</code></em> rectangles for all cells tile to cover the entire<em class="parameter"><code>window</code></em>. <em class="parameter"><code>expose_area</code></em> is a clip rectangle.</p><p></p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>cell</code></em> :</span></p></td><td> a <a class="link" href="GtkCellRenderer.html" title="GtkCellRenderer"><span class="type">GtkCellRenderer</span></a></td></tr><tr><td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td><td> a <ahref="/usr/share/gtk-doc/html/gdk/gdk-Drawing-Primitives.html#GdkDrawable"><span class="type">GdkDrawable</span></a> to draw to</td></tr><tr><td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td><td> the widget owning <em class="parameter"><code>window</code></em></td></tr><tr><td><p><span class="term"><em class="parameter"><code>background_area</code></em> :</span></p></td><td> entire cell area (including tree expanders and maybe padding on the sides)</td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -