结构

GdkPopupLayout

说明 [源代码]

struct GdkPopupLayout {
  /* No available fields */
}

GdkPopupLayout 结构包含了对 GdkPopup 相对于其父级进行定位所需的信息。

定位需要与窗口系统进行协商,因为它取决于外部约束,例如父级表面的位置和屏幕尺寸。

基本要素是父级表面上的一个矩形和矩形和弹出窗口上的锚点。锚点指定要放置在彼此旁边的哪一侧或哪一角。

Popup anchors

在将锚点彼此放置在一起会使弹出窗口超出屏幕的范围内,布局中包含了一些提示信息,说明如何解决此问题。这些提示可能会建议将锚点位置翻转到另一侧,或沿着某一侧“滑动”弹出窗口,或对其进行调整。

Flipping popups

Sliding popups

这些提示可以合并。

最终,由窗口系统来确定弹出窗口的位置和大小。您可以在弹出窗口呈现后通过调用 gdk_popup_get_position_x()gdk_popup_get_position_y()gdk_popup_get_rect_anchor()gdk_popup_get_surface_anchor() 来了解结果。这可用于调整渲染。例如,GtkPopover 会相应地改变其箭头位置。但是,您必须小心避免更改弹出窗口的大小,否则必须再次显示它。

构造函数

gdk_popup_layout_new

创建弹出窗口布局说明。

实例方法

gdk_popup_layout_copy

制作 layout 的副本。

gdk_popup_layout_equal

检查 layoutother 是否具有相同的布局属性。

gdk_popup_layout_get_anchor_hints

获取 GdkAnchorHints

gdk_popup_layout_get_anchor_rect

获取锚定矩形。

gdk_popup_layout_get_offset

检索用来锚定矩形的偏移量。

gdk_popup_layout_get_rect_anchor

返回锚定矩形上的锚点位置。

gdk_popup_layout_get_shadow_width

获取此布局的阴影宽度。

自版本 4.2 起

gdk_popup_layout_get_surface_anchor

返回弹出窗口的锚定位置。

gdk_popup_layout_ref

增加 value 的引用计数。

gdk_popup_layout_set_anchor_hints

设置新的锚定提示。

gdk_popup_layout_set_anchor_rect

设置锚定矩形。

gdk_popup_layout_set_offset

给定 delta,可在距锚定矩形的位置上偏移。

gdk_popup_layout_set_rect_anchor

在锚定矩形上设置锚定。

gdk_popup_layout_set_shadow_width

设置弹出窗口的阴影宽度。

自版本 4.2 起

gdk_popup_layout_set_surface_anchor

在弹出窗口表面设置锚定。

gdk_popup_layout_unref

减少值 value 的引用计数。