GdkPopupLayout

GdkPopupLayout — Information for presenting popups

Functions

Types and Values

  GdkPopupLayout
enum GdkAnchorHints

Object Hierarchy

    GBoxed
    ╰── GdkPopupLayout

Includes

#include <gdk/gdk.h>

Description

Popups are positioned relative to their parent surface. The GdkPopupLayout struct contains information that is necessary to do so.

Functions

gdk_popup_layout_new ()

GdkPopupLayout *
gdk_popup_layout_new (const GdkRectangle *anchor_rect,
                      GdkGravity rect_anchor,
                      GdkGravity surface_anchor);

Create a popup layout description. Used together with gdk_surface_present_popup() to describe how a popup surface should be placed and behave on-screen.

anchor_rect is relative to the top-left corner of the surface's parent. rect_anchor and surface_anchor determine anchor points on anchor_rect and surface to pin together.

The position of anchor_rect 's anchor point can optionally be offset using gdk_popup_layout_set_offset(), which is equivalent to offsetting the position of surface.

[constructor]

Parameters

anchor_rect

the anchor GdkRectangle to align surface with.

[not nullable]

rect_anchor

the point on anchor_rect to align with surface 's anchor point

 

surface_anchor

the point on surface to align with rect 's anchor point

 

Returns

newly created instance of GdkPopupLayout.

[transfer full]


gdk_popup_layout_ref ()

GdkPopupLayout *
gdk_popup_layout_ref (GdkPopupLayout *layout);

Increases the reference count of value .

Parameters

layout

a GdkPopupLayout

 

Returns

the same layout


gdk_popup_layout_unref ()

void
gdk_popup_layout_unref (GdkPopupLayout *layout);

Decreases the reference count of value .

Parameters

layout

a GdkPopupLayout

 

gdk_popup_layout_copy ()

GdkPopupLayout *
gdk_popup_layout_copy (GdkPopupLayout *layout);

Create a new GdkPopupLayout and copy the contents of layout into it.

Parameters

layout

a GdkPopupLayout

 

Returns

a copy of layout .

[transfer full]


gdk_popup_layout_equal ()

gboolean
gdk_popup_layout_equal (GdkPopupLayout *layout,
                        GdkPopupLayout *other);

Check whether layout and other has identical layout properties.

Parameters

layout

a GdkPopupLayout

 

other

another GdkPopupLayout

 

Returns

TRUE if layout and other have identical layout properties, otherwise FALSE.


gdk_popup_layout_set_anchor_rect ()

void
gdk_popup_layout_set_anchor_rect (GdkPopupLayout *layout,
                                  const GdkRectangle *anchor_rect);

Set the anchor rectangle.

Parameters

layout

a GdkPopupLayout

 

anchor_rect

the new anchor rectangle

 

gdk_popup_layout_get_anchor_rect ()

const GdkRectangle *
gdk_popup_layout_get_anchor_rect (GdkPopupLayout *layout);

Get the anchor rectangle.

Parameters

layout

a GdkPopupLayout

 

Returns

The anchor rectangle.


gdk_popup_layout_set_rect_anchor ()

void
gdk_popup_layout_set_rect_anchor (GdkPopupLayout *layout,
                                  GdkGravity anchor);

Set the anchor on the anchor rectangle.

Parameters

layout

a GdkPopupLayout

 

anchor

the new rect anchor

 

gdk_popup_layout_get_rect_anchor ()

GdkGravity
gdk_popup_layout_get_rect_anchor (GdkPopupLayout *layout);

Returns the anchor position on the anchor rectangle.

Parameters

layout

a GdkPopupLayout

 

Returns

the anchor on the anchor rectangle.


gdk_popup_layout_set_surface_anchor ()

void
gdk_popup_layout_set_surface_anchor (GdkPopupLayout *layout,
                                     GdkGravity anchor);

Set the anchor on the popup surface.

Parameters

layout

a GdkPopupLayout

 

anchor

the new popup surface anchor

 

gdk_popup_layout_get_surface_anchor ()

GdkGravity
gdk_popup_layout_get_surface_anchor (GdkPopupLayout *layout);

Returns the anchor position on the popup surface.

Parameters

layout

a GdkPopupLayout

 

Returns

the anchor on the popup surface.


gdk_popup_layout_set_anchor_hints ()

void
gdk_popup_layout_set_anchor_hints (GdkPopupLayout *layout,
                                   GdkAnchorHints anchor_hints);

Set new anchor hints.

The set anchor_hints determines how surface will be moved if the anchor points cause it to move off-screen. For example, GDK_ANCHOR_FLIP_X will replace GDK_GRAVITY_NORTH_WEST with GDK_GRAVITY_NORTH_EAST and vice versa if surface extends beyond the left or right edges of the monitor.

Parameters

layout

a GdkPopupLayout

 

anchor_hints

the new GdkAnchorHints

 

gdk_popup_layout_get_anchor_hints ()

GdkAnchorHints
gdk_popup_layout_get_anchor_hints (GdkPopupLayout *layout);

Get the GdkAnchorHints.

Parameters

layout

a GdkPopupLayout

 

Returns

the GdkAnchorHints.


gdk_popup_layout_set_offset ()

void
gdk_popup_layout_set_offset (GdkPopupLayout *layout,
                             int dx,
                             int dy);

Offset the position of the anchor rectangle with the given delta.

Parameters

layout

a GdkPopupLayout

 

dx

x delta to offset the anchor rectangle with

 

dy

y delta to offset the anchor rectangle with

 

gdk_popup_layout_get_offset ()

void
gdk_popup_layout_get_offset (GdkPopupLayout *layout,
                             int *dx,
                             int *dy);

Get the delta the anchor rectangle is offset with

Parameters

layout

a GdkPopupLayout

 

dx

a pointer to where to store the delta x coordinate

 

dy

a pointer to where to store the delta y coordinate