/* * Copyright (C) 2018 Purism SPC * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include /* TODO: We use the enum constants from here, use glib-mkenums */ #include "wlr-layer-shell-unstable-v1-client-protocol.h" G_BEGIN_DECLS #define PHOSH_TYPE_LAYER_SURFACE (phosh_layer_surface_get_type ()) G_DECLARE_DERIVABLE_TYPE (PhoshLayerSurface, phosh_layer_surface, PHOSH, LAYER_SURFACE, GtkWindow) /** * PhoshLayerSurfaceClass * @parent_class: The parent class * @configured: invoked when layer surface is configured */ struct _PhoshLayerSurfaceClass { GtkWindowClass parent_class; /* Signals */ void (*configured) (PhoshLayerSurface *self); }; GtkWidget *phosh_layer_surface_new (gpointer layer_shell, gpointer wl_output); struct zwlr_layer_surface_v1 *phosh_layer_surface_get_layer_surface(PhoshLayerSurface *self); struct wl_surface *phosh_layer_surface_get_wl_surface(PhoshLayerSurface *self); void phosh_layer_surface_set_size(PhoshLayerSurface *self, int width, int height); void phosh_layer_surface_set_margins(PhoshLayerSurface *self, int top, int right, int bottom, int left); void phosh_layer_surface_set_exclusive_zone(PhoshLayerSurface *self, int zone); void phosh_layer_surface_set_kbd_interactivity(PhoshLayerSurface *self, gboolean interactivity); void phosh_layer_surface_set_layer (PhoshLayerSurface *self, guint32 layer); void phosh_layer_surface_wl_surface_commit (PhoshLayerSurface *self); void phosh_layer_surface_get_margins (PhoshLayerSurface *self, int *top, int *right, int *bottom, int *left); int phosh_layer_surface_get_configured_width (PhoshLayerSurface *self); int phosh_layer_surface_get_configured_height (PhoshLayerSurface *self); G_END_DECLS