wlmaker
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
background.c File Reference
#include "background.h"
#include <libbase/libbase.h>
#include <stdbool.h>
#include <stdlib.h>
#include <wayland-server-core.h>
#include <wlr/types/wlr_output_layout.h>
#include <wlr/util/edges.h>
Include dependency graph for background.c:

Classes

struct  _wlmaker_background_t
 
struct  wlmaker_background_panel_t
 
struct  wlmaker_background_panel_update_arg_t
 

Functions

static void _wlmaker_background_handle_output_layout_change (struct wl_listener *listener_ptr, void *data_ptr)
 
static bool _wlmaker_background_update_output (struct wl_list *link_ptr, void *ud_ptr)
 
static wlmaker_background_panel_t_wlmaker_background_panel_create (wlmtk_layer_t *layer_ptr, struct wlr_output *wlr_output_ptr, uint32_t color)
 
static void _wlmaker_background_panel_destroy (wlmaker_background_panel_t *background_panel_ptr)
 
static int _wlmaker_background_panel_node_cmp (const bs_avltree_node_t *avlnode_ptr, const void *key_ptr)
 
static void _wlmaker_background_panel_node_destroy (bs_avltree_node_t *avlnode_ptr)
 
static void _wlmaker_background_panel_element_destroy (wlmtk_element_t *element_ptr)
 
static uint32_t _wlmaker_background_panel_request_size (wlmtk_panel_t *panel_ptr, int width, int height)
 
wlmaker_background_twlmaker_background_create (wlmtk_workspace_t *workspace_ptr, struct wlr_output_layout *wlr_output_layout_ptr, uint32_t color)
 
void wlmaker_background_destroy (wlmaker_background_t *background_ptr)
 

Variables

static const wlmtk_element_vmt_t _wlmaker_background_panel_element_vmt
 
static const wlmtk_panel_vmt_t _wlmaker_background_panel_vmt
 
static const wlmtk_panel_positioning_t _wlmaker_background_panel_position
 

Detailed Description

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ _wlmaker_background_handle_output_layout_change()

void _wlmaker_background_handle_output_layout_change ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handles the change event of wlr_output_layout::events.

Walks through outputs of wlmaker_background_t::wlr_output_layout_ptr, and creates, removes or updates removes panels as needed.

Parameters
listener_ptr
data_ptr

◆ _wlmaker_background_panel_create()

wlmaker_background_panel_t * _wlmaker_background_panel_create ( wlmtk_layer_t layer_ptr,
struct wlr_output *  wlr_output_ptr,
uint32_t  color 
)
static

Ctor.

◆ _wlmaker_background_panel_destroy()

void _wlmaker_background_panel_destroy ( wlmaker_background_panel_t background_panel_ptr)
static

Dtor.

◆ _wlmaker_background_panel_element_destroy()

void _wlmaker_background_panel_element_destroy ( wlmtk_element_t element_ptr)
static

Implements wlmtk_element_vmt_t::destroy. Dtor for the panel.

◆ _wlmaker_background_panel_node_cmp()

int _wlmaker_background_panel_node_cmp ( const bs_avltree_node_t *  avlnode_ptr,
const void *  key_ptr 
)
static

◆ _wlmaker_background_panel_node_destroy()

void _wlmaker_background_panel_node_destroy ( bs_avltree_node_t *  avlnode_ptr)
static

Destructor for wlmaker_background_panel_t.

◆ _wlmaker_background_panel_request_size()

uint32_t _wlmaker_background_panel_request_size ( wlmtk_panel_t panel_ptr,
int  width,
int  height 
)
static

Implements wlmtk_panel_vmt_t::request_size. Updates the panel size.

◆ _wlmaker_background_update_output()

bool _wlmaker_background_update_output ( struct wl_list *  link_ptr,
void *  ud_ptr 
)
static

Updates the output.

Parameters
link_ptrstruct wlr_output_layout_output::link.
ud_ptrwlmaker_background_panel_update_arg_t.
Returns
true on success, or false on error.

◆ wlmaker_background_create()

wlmaker_background_t * wlmaker_background_create ( wlmtk_workspace_t workspace_ptr,
struct wlr_output_layout *  wlr_output_layout_ptr,
uint32_t  color 
)

Creates a background, derived from a wlmtk_panel_t.

Parameters
workspace_ptr
wlr_output_layout_ptr
color
Returns
A handle for the background, or NULL on error.

◆ wlmaker_background_destroy()

void wlmaker_background_destroy ( wlmaker_background_t background_ptr)

Destroys the background.

Parameters
background_ptr

Variable Documentation

◆ _wlmaker_background_panel_element_vmt

const wlmtk_element_vmt_t _wlmaker_background_panel_element_vmt
static
Initial value:
= {
}
static void _wlmaker_background_panel_element_destroy(wlmtk_element_t *element_ptr)
Definition background.c:336

The background panel's element superclass virtual method.

◆ _wlmaker_background_panel_position

const wlmtk_panel_positioning_t _wlmaker_background_panel_position
static
Initial value:
= {
.desired_width = 0,
.desired_height = 0,
.anchor = WLR_EDGE_LEFT | WLR_EDGE_TOP | WLR_EDGE_RIGHT | WLR_EDGE_BOTTOM,
}

Panel's position: Anchored to all 4 edges, and auto-sized.

◆ _wlmaker_background_panel_vmt

const wlmtk_panel_vmt_t _wlmaker_background_panel_vmt
static
Initial value:
= {
}
static uint32_t _wlmaker_background_panel_request_size(wlmtk_panel_t *panel_ptr, int width, int height)
Definition background.c:365

The background panels' virtual method table.