Copy layersurface & layer shell protocol from phosh (https://gitlab.gnome.org/World/Phosh/phosh/)
		
			
				
	
	
		
			61 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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
 |