polytreewm/src/settings.c

175 lines
4.8 KiB
C
Raw Normal View History

2021-11-13 16:31:28 +00:00
#include "settings.h"
#define MIN_BORDER_WIDTH 0
#define MAX_BORDER_WIDTH 10000
#define MIN_DEFAULT_CLIENTS_IN_MASTER 1
#define MAX_DEFAULT_CLIENTS_IN_MASTER 10000
#define MIN_GAP_SIZE 0
#define MAX_GAP_SIZE 10000
#define MIN_MAX_CLIENTS_IN_MASTER 1
#define MAX_MAX_CLIENTS_IN_MASTER 10000
#define MIN_SNAP_DISTANCE 1
#define MAX_SNAP_DISTANCE 10000
2021-11-15 04:05:57 +00:00
static int border_width = 2;
static int default_clients_in_master = 1;
static SettingsForSingleWindow border_for_single_window = SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN;
static SettingsForSingleWindow gap_for_single_window = SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN;
static bool enable_swallowing = true;
2021-11-13 16:31:28 +00:00
static bool focus_on_wheel = true;
static int gap_size = 10;
2021-11-13 21:03:13 +00:00
static int max_clients_in_master = 0; // 0 for no maximum
static bool respect_resize_hints_in_floating_layout = false;
static bool show_bar_by_default = true;
static unsigned int snap_distance = 32;
2021-11-17 01:38:27 +00:00
static bool status_on_all_monitors = false;
static bool swallow_floating = false;
2021-11-13 16:31:28 +00:00
int settings_get_border_width()
2021-11-15 04:05:57 +00:00
{
return border_width;
}
void settings_set_border_width(int new_border_width)
2021-11-15 04:05:57 +00:00
{
if (new_border_width < MIN_BORDER_WIDTH) new_border_width = MIN_BORDER_WIDTH;
if (new_border_width > MAX_BORDER_WIDTH) new_border_width = MAX_BORDER_WIDTH;
2021-11-15 04:05:57 +00:00
border_width = new_border_width;
// TODO: notify WM to rearrange clients
}
int settings_get_default_clients_in_master()
{
return default_clients_in_master;
}
void settings_set_default_clients_in_master(int new_default_clients_in_master)
{
if (new_default_clients_in_master < MIN_DEFAULT_CLIENTS_IN_MASTER) new_default_clients_in_master = MIN_DEFAULT_CLIENTS_IN_MASTER;
if (new_default_clients_in_master < MAX_DEFAULT_CLIENTS_IN_MASTER) new_default_clients_in_master = MAX_DEFAULT_CLIENTS_IN_MASTER;
default_clients_in_master = new_default_clients_in_master;
}
SettingsForSingleWindow settings_get_border_for_single_window()
{
return border_for_single_window;
}
void settings_set_border_for_single_window(const SettingsForSingleWindow new_border_for_single_window)
{
border_for_single_window = new_border_for_single_window;
// TODO: notify WM to rearrange clients
}
SettingsForSingleWindow settings_get_gap_for_single_window()
{
return gap_for_single_window;
}
void settings_set_gap_for_single_window(const SettingsForSingleWindow new_gap_for_single_window)
{
gap_for_single_window = new_gap_for_single_window;
// TODO: notify WM to rearrange clients
}
bool settings_get_enable_swallowing()
{
return enable_swallowing;
}
void settings_set_enable_swallowing(const bool new_enable_swallowing)
{
enable_swallowing = new_enable_swallowing;
}
2021-11-13 16:31:28 +00:00
bool settings_get_focus_on_wheel()
{
return focus_on_wheel;
}
void settings_set_focus_on_wheel(const bool new_focus_on_wheel)
{
focus_on_wheel = new_focus_on_wheel;
}
int settings_get_gap_size()
{
return gap_size;
}
void settings_set_gap_size(int new_gap_size)
{
if (new_gap_size < MIN_GAP_SIZE) new_gap_size = MIN_GAP_SIZE;
if (new_gap_size > MAX_GAP_SIZE) new_gap_size = MAX_GAP_SIZE;
gap_size = new_gap_size;
// TODO: notify WM to rearrange clients
}
int settings_get_max_clients_in_master()
{
return max_clients_in_master;
}
void settings_set_max_clients_in_master(int new_max_clients_in_master)
{
if (new_max_clients_in_master < MIN_MAX_CLIENTS_IN_MASTER) new_max_clients_in_master = MIN_MAX_CLIENTS_IN_MASTER;
if (new_max_clients_in_master < MAX_MAX_CLIENTS_IN_MASTER) new_max_clients_in_master = MAX_MAX_CLIENTS_IN_MASTER;
max_clients_in_master = new_max_clients_in_master;
// TODO: notify WM to rearrange clients
}
bool settings_get_respect_resize_hints_in_floating_layout()
{
return respect_resize_hints_in_floating_layout;
}
void settings_set_respect_resize_hints_in_floating_layout(const bool new_respect_resize_hints_in_floating_layout)
{
respect_resize_hints_in_floating_layout = new_respect_resize_hints_in_floating_layout;
2021-11-13 18:02:26 +00:00
// TODO: notify WM to rearrange clients
}
bool settings_get_show_bar_by_default()
{
return show_bar_by_default;
}
void settings_set_show_bar_by_default(bool new_show_bar_by_default)
{
show_bar_by_default = new_show_bar_by_default;
}
unsigned int settings_get_snap_distance()
{
return snap_distance;
}
void settings_set_snap_distance(unsigned int new_snap_distance)
{
if (new_snap_distance < MIN_SNAP_DISTANCE) new_snap_distance = MIN_SNAP_DISTANCE;
if (new_snap_distance < MAX_SNAP_DISTANCE) new_snap_distance = MAX_SNAP_DISTANCE;
snap_distance = new_snap_distance;
}
2021-11-17 01:38:27 +00:00
bool settings_get_status_on_all_monitors()
{
return status_on_all_monitors;
}
void settings_set_status_on_all_monitors(bool new_status_on_all_monitors)
{
status_on_all_monitors = new_status_on_all_monitors;
// TODO: notify WM to rearrange clients
}
bool settings_get_swallow_floating()
{
return swallow_floating;
}
void settings_set_swallow_floating(const bool new_swallow_floating)
{
swallow_floating = new_swallow_floating;
}