Files
squeekboard/eek/layersurface.h
David96 6e46512044 Sync layersurface with Phosh
Copy layersurface & layer shell protocol from phosh
(https://gitlab.gnome.org/World/Phosh/phosh/)
2023-02-04 18:03:54 +00:00

61 lines
3.0 KiB
C

/*
* Copyright (C) 2018 Purism SPC
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#pragma once
#include <gtk/gtk.h>
/* 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