forked from AuroraMiddleware/gtk
surface: Start sketching a new surface type
Start by adding a constructor. We have to call it gdk_surface_new_popup_full for now, since gdk_surface_new_popup is taken. This may be reshuffled later.
This commit is contained in:
parent
2764652b3c
commit
9e6d8becbb
@ -836,6 +836,42 @@ gdk_surface_new_popup (GdkDisplay *display,
|
||||
return gdk_surface_new (display, NULL, &attr);
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_surface_new_popup_full: (constructor)
|
||||
* @display: the display to create the surface on
|
||||
* @parent: the parent surface to attach the surface to
|
||||
*
|
||||
* Create a new popup surface.
|
||||
* The surface will be attached to @parent and can
|
||||
* be positioned relative to it using
|
||||
* gdk_surface_move_to_rect().
|
||||
*
|
||||
* Returns: (transfer full): a new #GdkSurface
|
||||
*/
|
||||
GdkSurface *
|
||||
gdk_surface_new_popup_full (GdkDisplay *display,
|
||||
GdkSurface *parent)
|
||||
{
|
||||
GdkSurface *surface;
|
||||
GdkSurfaceAttr attr;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
|
||||
g_return_val_if_fail (GDK_IS_SURFACE (parent), NULL);
|
||||
|
||||
attr.wclass = GDK_INPUT_OUTPUT;
|
||||
attr.x = 0;
|
||||
attr.y = 0;
|
||||
attr.width = 100;
|
||||
attr.height = 100;
|
||||
attr.surface_type = GDK_SURFACE_TEMP;
|
||||
|
||||
surface = gdk_surface_new (display, NULL, &attr);
|
||||
gdk_surface_set_transient_for (surface, parent);
|
||||
gdk_surface_set_type_hint (surface, GDK_SURFACE_TYPE_HINT_MENU);
|
||||
|
||||
return surface;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_surface_new_temp: (constructor)
|
||||
* @display: the display to create the surface on
|
||||
|
@ -440,6 +440,9 @@ GDK_AVAILABLE_IN_ALL
|
||||
GdkSurface * gdk_surface_new_popup (GdkDisplay *display,
|
||||
const GdkRectangle *position);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkSurface * gdk_surface_new_popup_full (GdkDisplay *display,
|
||||
GdkSurface *parent);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkSurface * gdk_surface_new_temp (GdkDisplay *display);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkSurface * gdk_surface_new_child (GdkSurface *parent,
|
||||
|
Loading…
Reference in New Issue
Block a user