wlmaker
|
#include <stdbool.h>
#include <stdint.h>
#include <libbase/libbase.h>
#include "element.h"
#include "layer.h"
#include "root.h"
#include "tile.h"
#include "window.h"
Go to the source code of this file.
Typedefs | |
typedef struct _wlmtk_workspace_t | wlmtk_workspace_t |
Enumerations | |
enum | wlmtk_workspace_layer_t { WLMTK_WORKSPACE_LAYER_BACKGROUND = 0 , WLMTK_WORKSPACE_LAYER_BOTTOM = 1 , WLMTK_WORKSPACE_LAYER_TOP = 3 , WLMTK_WORKSPACE_LAYER_OVERLAY = 4 } |
Variables | |
const bs_test_case_t | wlmtk_workspace_test_cases [] |
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.
typedef struct _wlmtk_workspace_t wlmtk_workspace_t |
State of the workspace.
Indicates which layer the view shall be rendered in.
See enum layer
at: https://wayland.app/protocols/wlr-layer-shell-unstable-v1.
bs_dllist_node_t * wlmtk_dlnode_from_workspace | ( | wlmtk_workspace_t * | workspace_ptr | ) |
void wlmtk_workspace_activate_next_window | ( | wlmtk_workspace_t * | workspace_ptr | ) |
Activates the wlmtk_window_t after the currently activated one.
Intended to permit cycling through tasks. Will activate the window, but not raise it. See wlmtk_workspace_activate_previous_window.
workspace_ptr |
void wlmtk_workspace_activate_previous_window | ( | wlmtk_workspace_t * | workspace_ptr | ) |
Activates the wlmtk_window_t before the currently activated one.
Intended to permit cycling through tasks. Will activate the window, but not raise it. See wlmtk_workspace_activate_next_window.
workspace_ptr |
void wlmtk_workspace_activate_window | ( | wlmtk_workspace_t * | workspace_ptr, |
wlmtk_window_t * | window_ptr | ||
) |
Acticates window_ptr
. Will de-activate an earlier window.
void wlmtk_workspace_begin_window_move | ( | wlmtk_workspace_t * | workspace_ptr, |
wlmtk_window_t * | window_ptr | ||
) |
Initiates a 'move' for the window.
workspace_ptr | |
window_ptr |
void wlmtk_workspace_begin_window_resize | ( | wlmtk_workspace_t * | workspace_ptr, |
wlmtk_window_t * | window_ptr, | ||
uint32_t | edges | ||
) |
Initiates a 'resize' for the window.
workspace_ptr | |
window_ptr | |
edges |
void wlmtk_workspace_confine_within | ( | wlmtk_workspace_t * | workspace_ptr, |
wlmtk_window_t * | window_ptr | ||
) |
Confines the window to remain entirely within workspace extents.
A no-op if window_ptr is not mapped to workspace_ptr.
workspace_ptr | |
window_ptr |
wlmtk_workspace_t * wlmtk_workspace_create | ( | struct wlr_output_layout * | wlr_output_layout_ptr, |
const char * | name_ptr, | ||
const wlmtk_tile_style_t * | tile_style_ptr | ||
) |
Creates a workspace.
wlr_output_layout_ptr | Output layout. Must outlive the workspace. |
name_ptr | |
tile_style_ptr |
void wlmtk_workspace_destroy | ( | wlmtk_workspace_t * | workspace_ptr | ) |
Destroys the workspace. Will destroy any stil-contained element.
workspace_ptr |
wlmtk_element_t * wlmtk_workspace_element | ( | wlmtk_workspace_t * | workspace_ptr | ) |
void wlmtk_workspace_enable | ( | wlmtk_workspace_t * | workspace_ptr, |
bool | enabled | ||
) |
Enabled or disables the workspace.
An enabled workspace can have keyboard focus and activated windows. When re-enabling a workspace, the formerly activated window will get re-activated and re-gains keyboard focus.
workspace_ptr | |
enabled |
bool wlmtk_workspace_enabled | ( | wlmtk_workspace_t * | workspace_ptr | ) |
wlmtk_workspace_t * wlmtk_workspace_from_dlnode | ( | bs_dllist_node_t * | dlnode_ptr | ) |
dlnode_ptr
. wlmtk_window_t * wlmtk_workspace_get_activated_window | ( | wlmtk_workspace_t * | workspace_ptr | ) |
void wlmtk_workspace_get_details | ( | wlmtk_workspace_t * | workspace_ptr, |
const char ** | name_ptr_ptr, | ||
int * | index_ptr | ||
) |
Retrieves the naming details of this workspace.
workspace_ptr | |
name_ptr_ptr | |
index_ptr |
struct wlr_box wlmtk_workspace_get_fullscreen_extents | ( | wlmtk_workspace_t * | workspace_ptr, |
struct wlr_output * | wlr_output_ptr | ||
) |
Returns the extents of the workspace available for fullscreen windows.
workspace_ptr | |
wlr_output_ptr | Output to lookup the extents for. May be NULL, in which case the primary output is used. |
struct wlr_box
that lines out the available space and position. wlmtk_layer_t * wlmtk_workspace_get_layer | ( | wlmtk_workspace_t * | workspace_ptr, |
wlmtk_workspace_layer_t | layer | ||
) |
Returns pointer to the wlmtk_layer_t handle serving layer
.
workspace_ptr | |
layer |
struct wlr_box wlmtk_workspace_get_maximize_extents | ( | wlmtk_workspace_t * | workspace_ptr, |
struct wlr_output * | wlr_output_ptr | ||
) |
Returns the workspace'soutput extents available for maximized windows.
workspace_ptr | |
wlr_output_ptr | Output to lookup the extents for. May be NULL, in which case the primary output is used. |
struct wlr_box
that lines out the available space and position. wlmtk_root_t * wlmtk_workspace_get_root | ( | wlmtk_workspace_t * | workspace_ptr | ) |
workspace_ptr
. bs_dllist_t * wlmtk_workspace_get_windows_dllist | ( | wlmtk_workspace_t * | workspace_ptr | ) |
Returns the bs_dllist_t
of currently mapped windows.
workspace_ptr |
struct wlr_output_layout * wlmtk_workspace_get_wlr_output_layout | ( | wlmtk_workspace_t * | workspace_ptr | ) |
void wlmtk_workspace_map_window | ( | wlmtk_workspace_t * | workspace_ptr, |
wlmtk_window_t * | window_ptr | ||
) |
Maps the window: Adds it to the workspace container and makes it visible.
workspace_ptr | |
window_ptr |
void wlmtk_workspace_raise_window | ( | wlmtk_workspace_t * | workspace_ptr, |
wlmtk_window_t * | window_ptr | ||
) |
Raises window_ptr
: Will show it atop all other windows.
void wlmtk_workspace_set_details | ( | wlmtk_workspace_t * | workspace_ptr, |
int | index | ||
) |
Sets or updates workspace details.
workspace_ptr | |
index |
|
protected |
Sets the anchor wlmtk_root_t of workspace_ptr
.
Must only be called from wlmtk_root_t.
workspace_ptr | |
root_ptr |
void wlmtk_workspace_unmap_window | ( | wlmtk_workspace_t * | workspace_ptr, |
wlmtk_window_t * | window_ptr | ||
) |
Unmaps the window: Sets it as invisible and removes it from the container.
workspace_ptr | |
window_ptr |
void wlmtk_workspace_window_to_fullscreen | ( | wlmtk_workspace_t * | workspace_ptr, |
wlmtk_window_t * | window_ptr, | ||
bool | fullscreen | ||
) |
Promotes the window to the fullscreen layer (or back).
To be called by wlmtk_window_commit_fullscreen.
workspace_ptr | |
window_ptr | |
fullscreen |
|
extern |
Unit tests for the workspace.