The concept of Workspaces is known from various other window managers. More...
#include <data.h>
Public Member Functions | |
SLIST_HEAD (focus_stack_head, Client) focus_stack | |
The focus stack contains the clients in the correct order of focus so that the focus can be reverted correctly when a client is closed. | |
TAILQ_HEAD (floating_clients_head, Client) floating_clients | |
This tail queue contains the floating clients in order of when they were first set to floating (new floating clients are just appended). | |
TAILQ_ENTRY (Workspace) workspaces | |
Data Fields | |
int | num |
Number of this workspace, starting from 0. | |
char * | utf8_name |
Name of the workspace (in UTF-8). | |
char * | name |
Name of the workspace (in UCS-2). | |
int | name_len |
Length of the workspace’s name (in glyphs). | |
int | text_width |
Width of the workspace’s name (in pixels) rendered in config.font. | |
Rect | rect |
x, y, width, height | |
int | cols |
table dimensions | |
int | rows |
table dimensions | |
int | current_row |
These are stored here only while this workspace is _not_ shown (see show_workspace()). | |
int | current_col |
These are stored here only while this workspace is _not_ shown (see show_workspace()). | |
bool | auto_float |
Should clients on this workspace be automatically floating? | |
bool | floating_hidden |
Are the floating clients on this workspace currently hidden? | |
char * | preferred_output |
The name of the RandR output this screen should be on. | |
bool | urgent |
True if any client on this workspace has its urgent flag set. | |
Client * | fullscreen_client |
the client who is started in fullscreen mode on this workspace, NULL if there is none | |
Output * | output |
Backpointer to the output this workspace is on. | |
Container *** | table |
This is a two-dimensional dynamic array of Container-pointers. | |
float * | width_factor |
width_factor and height_factor contain the amount of space (percentage) a column/row has of all the space which is available for resized windows. | |
float * | height_factor |
The concept of Workspaces is known from various other window managers.
Basically, a workspace is a specific set of windows, usually grouped thematically (irc, www, work, …). You can switch between these.
Definition at line 182 of file data.h.
Workspace::SLIST_HEAD | ( | focus_stack_head | , | |
Client | ||||
) |
The focus stack contains the clients in the correct order of focus so that the focus can be reverted correctly when a client is closed.
Workspace::TAILQ_ENTRY | ( | Workspace | ) |
Workspace::TAILQ_HEAD | ( | floating_clients_head | , | |
Client | ||||
) |
This tail queue contains the floating clients in order of when they were first set to floating (new floating clients are just appended).
Should clients on this workspace be automatically floating?
Definition at line 214 of file data.h.
Referenced by parse_command().
int Workspace::cols |
table dimensions
Definition at line 202 of file data.h.
Referenced by cleanup_table(), expand_table_cols(), expand_table_cols_at_head(), expand_table_rows(), expand_table_rows_at_head(), floating_mod_on_tiled_client(), focus_thing(), get_unoccupied_x(), handle_button_press(), jump_to_container(), move_columns_from(), move_current_container(), move_current_window(), move_rows_from(), parse_resize_command(), render_workspace(), resize_container(), shrink_table_cols(), and shrink_table_rows().
These are stored here only while this workspace is _not_ shown (see show_workspace()).
Definition at line 211 of file data.h.
Referenced by check_crossing_screen_boundary(), cleanup_table(), move_current_window_to_workspace(), reparent_window(), set_focus(), and workspace_show().
These are stored here only while this workspace is _not_ shown (see show_workspace()).
Definition at line 208 of file data.h.
Referenced by check_crossing_screen_boundary(), cleanup_table(), move_current_window_to_workspace(), reparent_window(), set_focus(), and workspace_show().
Are the floating clients on this workspace currently hidden?
Definition at line 216 of file data.h.
Referenced by floating_toggle_hide(), and workspace_map_clients().
the client who is started in fullscreen mode on this workspace, NULL if there is none
Definition at line 226 of file data.h.
Referenced by client_enter_fullscreen(), client_leave_fullscreen(), client_set_below_floating(), floating_assign_to_workspace(), focus_thing(), handle_unmap_notify_event(), move_current_window_to_workspace(), move_floating_window_to_workspace(), output_change_mode(), render_container(), set_focus(), and workspace_show().
float* Workspace::height_factor |
Definition at line 251 of file data.h.
Referenced by expand_table_rows(), expand_table_rows_at_head(), get_unoccupied_y(), render_workspace(), resize_container(), and shrink_table_rows().
char* Workspace::name |
Name of the workspace (in UCS-2).
Definition at line 190 of file data.h.
Referenced by load_configuration(), render_internal_bar(), and workspace_set_name().
Length of the workspace’s name (in glyphs).
Definition at line 193 of file data.h.
Referenced by load_configuration(), render_internal_bar(), and workspace_set_name().
int Workspace::num |
Number of this workspace, starting from 0.
Definition at line 184 of file data.h.
Referenced by button_press_bar(), ewmh_update_current_desktop(), focus_thing(), get_first_workspace_for_output(), initialize_output(), IPC_HANDLER(), jump_to_mark(), jump_to_window(), next_previous_workspace(), reparent_window(), workspace_get(), workspace_set_name(), and workspace_show().
Backpointer to the output this workspace is on.
Definition at line 239 of file data.h.
Referenced by button_press_bar(), check_crossing_screen_boundary(), floating_move(), focus_thing(), get_first_workspace_for_output(), get_matching_client(), handle_configure_request(), handle_enter_notify(), handle_hints(), handle_unmap_notify_event(), initialize_output(), IPC_HANDLER(), move_current_window(), move_current_window_to_workspace(), move_floating_window_to_workspace(), next_previous_workspace(), output_change_mode(), parse_command(), randr_query_outputs(), render_bars(), render_internal_bar(), reparent_window(), reposition_client(), workspace_assign_to(), workspace_height(), workspace_initialize(), workspace_is_visible(), workspace_show(), and workspace_unmap_clients().
The name of the RandR output this screen should be on.
Definition at line 219 of file data.h.
Referenced by get_first_workspace_for_output(), initialize_output(), workspace_initialize(), and yyparse().
x, y, width, height
Definition at line 199 of file data.h.
Referenced by client_enter_fullscreen(), ewmh_update_workarea(), get_unoccupied_x(), handle_configure_request(), initialize_output(), IPC_HANDLER(), move_floating_window_to_workspace(), output_change_mode(), render_bars(), render_workspace(), reparent_window(), resize_container(), workspace_assign_to(), workspace_height(), and workspace_width().
int Workspace::rows |
table dimensions
Definition at line 204 of file data.h.
Referenced by cell_exists(), cleanup_table(), expand_table_cols(), expand_table_cols_at_head(), expand_table_rows(), expand_table_rows_at_head(), floating_mod_on_tiled_client(), focus_thing(), get_unoccupied_y(), handle_button_press(), jump_to_container(), move_columns_from(), move_current_container(), move_current_window(), move_rows_from(), parse_resize_command(), render_workspace(), resize_container(), and shrink_table_rows().
This is a two-dimensional dynamic array of Container-pointers.
I’ve always wanted to be a three-star programmer :)
Definition at line 244 of file data.h.
Referenced by cleanup_table(), dump_table(), expand_table_cols(), expand_table_cols_at_head(), expand_table_rows(), expand_table_rows_at_head(), fix_colrowspan(), focus_thing(), free_container(), ignore_enter_notify_forall(), jump_to_container(), move_columns_from(), move_current_window_to_workspace(), move_rows_from(), render_workspace(), reparent_window(), shrink_table_cols(), shrink_table_rows(), toggle_floating_mode(), workspace_map_clients(), workspace_unmap_clients(), and yyparse().
Width of the workspace’s name (in pixels) rendered in config.font.
Definition at line 196 of file data.h.
Referenced by button_press_bar(), load_configuration(), render_internal_bar(), and workspace_set_name().
bool Workspace::urgent |
True if any client on this workspace has its urgent flag set.
Definition at line 222 of file data.h.
Referenced by IPC_HANDLER(), render_internal_bar(), reparent_window(), and workspace_update_urgent_flag().
char* Workspace::utf8_name |
Name of the workspace (in UTF-8).
Definition at line 187 of file data.h.
Referenced by IPC_HANDLER(), and workspace_set_name().
float* Workspace::width_factor |
width_factor and height_factor contain the amount of space (percentage) a column/row has of all the space which is available for resized windows.
This ensures that non-resized windows (newly opened, for example) have the same size as always
Definition at line 250 of file data.h.
Referenced by expand_table_cols(), expand_table_cols_at_head(), get_unoccupied_x(), render_workspace(), resize_container(), and shrink_table_cols().