结构
GdkPopupLayout
说明 [源代码]
struct GdkPopupLayout {
/* No available fields */
}
GdkPopupLayout
结构包含了对 GdkPopup
相对于其父级进行定位所需的信息。
定位需要与窗口系统进行协商,因为它取决于外部约束,例如父级表面的位置和屏幕尺寸。
基本要素是父级表面上的一个矩形和矩形和弹出窗口上的锚点。锚点指定要放置在彼此旁边的哪一侧或哪一角。
在将锚点彼此放置在一起会使弹出窗口超出屏幕的范围内,布局中包含了一些提示信息,说明如何解决此问题。这些提示可能会建议将锚点位置翻转到另一侧,或沿着某一侧“滑动”弹出窗口,或对其进行调整。
这些提示可以合并。
最终,由窗口系统来确定弹出窗口的位置和大小。您可以在弹出窗口呈现后通过调用 gdk_popup_get_position_x()
、gdk_popup_get_position_y()
、gdk_popup_get_rect_anchor()
和 gdk_popup_get_surface_anchor()
来了解结果。这可用于调整渲染。例如,GtkPopover 会相应地改变其箭头位置。但是,您必须小心避免更改弹出窗口的大小,否则必须再次显示它。