类
GtkCellRenderer
废弃:4.10
说明 [src]
abstract class Gtk.CellRenderer : GObject.InitiallyUnowned
{
/* No available fields */
}
渲染单个单元格的对象
GtkCellRenderer
是用于向 cairo_t
渲染单元格的一组对象的基本类。这些对象主要由 GtkTreeView
小部件使用,尽管它们并未以任何特定方式绑定到它们。值得注意的是,GtkCellRenderer
不是 GtkWidget
,不能被视为 GtkWidget
。
GtkCellRenderer
的主要用途是在 cairo_t
上绘制某些图形元素。通常,一个单元格渲染器可用于在屏幕上绘制多个单元格。在此用法中,CellRenderer 不应保留任何永久状态。相反,使用 GObject
的属性系统在使用前设置任何状态。然后,使用 gtk_cell_renderer_get_preferred_size() 来测量单元格。最后,使用 gtk_cell_renderer_snapshot() 在正确位置渲染单元格。
在编写新 GtkCellRenderer
时,需要遵守许多规则。首先也是最重要的,一套特定属性将始终生成大小相同的单元格渲染器,除非样式发生变化。GtkCellRenderer
还具有一些常规属性,希望所有子项都能遵守这些属性。
除了仅仅渲染单元格外,单元格渲染器还可以选择性地提供活动用户界面元素。单元格渲染器可以“可激活”,如 GtkCellRenderer
Toggle,鼠标单击激活后就会切换,或者可以“可编辑”,如 GtkCellRenderer
Text,允许用户使用实现 GtkCellEditable
接口的小部件(例如 GtkEntry
)编辑文本。要使单元格渲染器可激活或可编辑,必须分别实现 GtkCellRenderer
Class.activate 或 GtkCellRenderer
Class.start_editing 虚拟函数。
GtkCellRenderer
及其子类的许多属性都有相应的“设置”属性,例如“cell-background-set”对应于“cell-background”。这些“设置”属性反映属性是否已设置。不应独立设置这些属性。
已弃用:4.10
列表视图使用小部件显示其内容。
实例方法
gtk_cell_renderer_activate
将激活事件传递给单元格渲染器以供处理。某些单元格渲染器可能会使用事件;例如,GtkCellRendererToggle
在鼠标单击时切换。
废弃:4.10
gtk_cell_renderer_get_preferred_height_for_width
当使用指定的 width
渲染到 widget
时,检索单元格渲染器的最小高度和自然高度。
废弃:4.10
gtk_cell_renderer_get_preferred_width_for_height
如果在指定了 height
的 widget
中渲染,则检索单元格渲染器的最小宽度和自然宽度。
废弃:4.10
gtk_cell_renderer_get_state
根据单元格渲染器和控件的灵敏度,以及给定的 GtkCellRenderer
State,将单元格渲染器状态转换为 GtkStateFlags
。
废弃:4.10
gtk_cell_renderer_snapshot
调用 GtkCellRenderer
的虚拟渲染函数。传递的三个矩形在 cr
中都是区域。大多数渲染器将在 cell_area
中绘制;GtkCellRenderer
的 xalign、yalign、xpad 和 ypad 字段应相对于 cell_area
应用。background_area
包括单元格周围的空白空间,还包括包含树形展开器的区域;因此,所有单元格的 background_area
矩形都会平铺以覆盖整个 window
。
废弃:4.10
gtk_cell_renderer_start_editing
开始编辑该 cell
的内容,通过使用 GtkCellRenderer
Class.start_editing 虚函数创建新的 GtkCellEditable
控件。
废弃:4.10
gtk_cell_renderer_stop_editing
通知单元格渲染器编辑已停止。如果 canceled
为 TRUE
,单元格渲染器将发出 GtkCellRenderer
::editing-canceled 信号。
废弃:4.10
信号
Gtk.CellRenderer::editing-started
当单元格开始编辑时,会发出此信号。此信号的预期用途是在 editable
上进行特殊设置,例如添加 GtkEntryCompletion
或在 GtkComboBox
中设置其他列。
从 GObject(1)继承的信号
GObject::notify
当对象的一个属性通过 g_object_set_property()、g_object_set() 等设置其值时,将在该对象上发出 notify 信号。
类结构
struct GtkCellRendererClass {
GtkSizeRequestMode (* get_request_mode) (
GtkCellRenderer* cell
);
void (* get_preferred_width) (
GtkCellRenderer* cell,
GtkWidget* widget,
int* minimum_size,
int* natural_size
);
void (* get_preferred_height_for_width) (
GtkCellRenderer* cell,
GtkWidget* widget,
int width,
int* minimum_height,
int* natural_height
);
void (* get_preferred_height) (
GtkCellRenderer* cell,
GtkWidget* widget,
int* minimum_size,
int* natural_size
);
void (* get_preferred_width_for_height) (
GtkCellRenderer* cell,
GtkWidget* widget,
int height,
int* minimum_width,
int* natural_width
);
void (* get_aligned_area) (
GtkCellRenderer* cell,
GtkWidget* widget,
GtkCellRendererState flags,
const GdkRectangle* cell_area,
GdkRectangle* aligned_area
);
void (* snapshot) (
GtkCellRenderer* cell,
GtkSnapshot* snapshot,
GtkWidget* widget,
const GdkRectangle* background_area,
const GdkRectangle* cell_area,
GtkCellRendererState flags
);
gboolean (* activate) (
GtkCellRenderer* cell,
GdkEvent* event,
GtkWidget* widget,
const char* path,
const GdkRectangle* background_area,
const GdkRectangle* cell_area,
GtkCellRendererState flags
);
GtkCellEditable* (* start_editing) (
GtkCellRenderer* cell,
GdkEvent* event,
GtkWidget* widget,
const char* path,
const GdkRectangle* background_area,
const GdkRectangle* cell_area,
GtkCellRendererState flags
);
void (* editing_canceled) (
GtkCellRenderer* cell
);
void (* editing_started) (
GtkCellRenderer* cell,
GtkCellEditable* editable,
const char* path
);
}
没有可用的描述。
类成员
get_request_mode: GtkSizeRequestMode (* get_request_mode) ( GtkCellRenderer* cell )
调用以获取单元格渲染器是更喜欢按宽取高布局还是按高取宽布局。
get_preferred_width: void (* get_preferred_width) ( GtkCellRenderer* cell, GtkWidget* widget, int* minimum_size, int* natural_size )
调用以获取呈现器的自然宽度。
get_preferred_height_for_width: void (* get_preferred_height_for_width) ( GtkCellRenderer* cell, GtkWidget* widget, int width, int* minimum_height, int* natural_height )
调用以获取适合于指定宽度的呈现器的自然高度。
get_preferred_height: void (* get_preferred_height) ( GtkCellRenderer* cell, GtkWidget* widget, int* minimum_size, int* natural_size )
调用以获取呈现器的自然高度。
get_preferred_width_for_height: void (* get_preferred_width_for_height) ( GtkCellRenderer* cell, GtkWidget* widget, int height, int* minimum_width, int* natural_width )
调用以获取适合于指定高度的呈现器的自然宽度。
get_aligned_area: void (* get_aligned_area) ( GtkCellRenderer* cell, GtkWidget* widget, GtkCellRendererState flags, const GdkRectangle* cell_area, GdkRectangle* aligned_area )
调用以获取在
cell_area
中cell
使用的对齐区域。snapshot: void (* snapshot) ( GtkCellRenderer* cell, GtkSnapshot* snapshot, GtkWidget* widget, const GdkRectangle* background_area, const GdkRectangle* cell_area, GtkCellRendererState flags )
调用以将
GtkCellRenderer
的内容制作成快照。activate: gboolean (* activate) ( GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, const char* path, const GdkRectangle* background_area, const GdkRectangle* cell_area, GtkCellRendererState flags )
调用以激活
GtkCellRenderer
的内容。start_editing: GtkCellEditable* (* start_editing) ( GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, const char* path, const GdkRectangle* background_area, const GdkRectangle* cell_area, GtkCellRendererState flags )
调用以启动编辑
GtkCellRenderer
的内容。editing_canceled: void (* editing_canceled) ( GtkCellRenderer* cell )
当用户取消编辑单元格的过程后,会发出此信号。
editing_started: void (* editing_started) ( GtkCellRenderer* cell, GtkCellEditable* editable, const char* path )
当单元格开始被编辑后,会发出此信号。
虚拟方法
Gtk.CellRendererClass.activate
将激活事件传递给单元格渲染器以供处理。某些单元格渲染器可能会使用事件;例如,GtkCellRendererToggle
在鼠标单击时切换。
废弃:4.10
Gtk.CellRendererClass.get_preferred_height_for_width
当使用指定的 width
渲染到 widget
时,检索单元格渲染器的最小高度和自然高度。
废弃:4.10
Gtk.CellRendererClass.get_preferred_width_for_height
如果在指定了 height
的 widget
中渲染,则检索单元格渲染器的最小宽度和自然宽度。
废弃:4.10
Gtk.CellRendererClass.get_request_mode
获取单元格渲染器是偏好以 width-for-height 布局还是 height-for-width 布局。
废弃:4.10
Gtk.CellRendererClass.snapshot
调用 GtkCellRenderer
的虚拟渲染函数。传递的三个矩形在 cr
中都是区域。大多数渲染器将在 cell_area
中绘制;GtkCellRenderer
的 xalign、yalign、xpad 和 ypad 字段应相对于 cell_area
应用。background_area
包括单元格周围的空白空间,还包括包含树形展开器的区域;因此,所有单元格的 background_area
矩形都会平铺以覆盖整个 window
。
废弃:4.10
Gtk.CellRendererClass.start_editing
开始编辑该 cell
的内容,通过使用 GtkCellRenderer
Class.start_editing 虚函数创建新的 GtkCellEditable
控件。
废弃:4.10