Add Rust type settings::ForSingleWindow
This commit is contained in:
parent
256654e586
commit
616ebeb227
|
@ -1,7 +1,7 @@
|
||||||
mod api;
|
mod api;
|
||||||
mod constraints;
|
mod constraints;
|
||||||
mod settings;
|
|
||||||
|
|
||||||
pub mod geom;
|
pub mod geom;
|
||||||
|
pub mod settings;
|
||||||
|
|
||||||
pub use settings::Settings;
|
pub use settings::Settings;
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
typedef enum {
|
typedef unsigned char SettingsForSingleWindow;
|
||||||
SETTINGS_FOR_SINGLE_WINDOW_NEVER,
|
|
||||||
SETTINGS_FOR_SINGLE_WINDOW_ALWAYS,
|
#define SETTINGS_FOR_SINGLE_WINDOW_NEVER 0
|
||||||
SETTINGS_FOR_SINGLE_WINDOW_NOT_IN_FULLSCREEN,
|
#define SETTINGS_FOR_SINGLE_WINDOW_ALWAYS 1
|
||||||
SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN,
|
#define SETTINGS_FOR_SINGLE_WINDOW_NOT_IN_FULLSCREEN 2
|
||||||
} SettingsForSingleWindow;
|
#define SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN 3
|
||||||
|
|
||||||
bool settings_get_bar_on_top_by_default();
|
bool settings_get_bar_on_top_by_default();
|
||||||
void settings_set_bar_on_top_by_default(bool new_bar_on_top_by_default);
|
void settings_set_bar_on_top_by_default(bool new_bar_on_top_by_default);
|
||||||
|
|
|
@ -18,6 +18,14 @@ pub struct Settings {
|
||||||
swallow_floating: bool,
|
swallow_floating: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Copy, Debug)]
|
||||||
|
pub enum ForSingleWindow {
|
||||||
|
Never,
|
||||||
|
Always,
|
||||||
|
NotInFullscreen,
|
||||||
|
NobodyIsFullscreen,
|
||||||
|
}
|
||||||
|
|
||||||
impl Default for Settings {
|
impl Default for Settings {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
|
@ -37,6 +45,35 @@ impl Default for Settings {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Default for ForSingleWindow {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self::NobodyIsFullscreen
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Into<c_uchar> for ForSingleWindow {
|
||||||
|
fn into(self) -> c_uchar {
|
||||||
|
match self {
|
||||||
|
Self::Never => 0,
|
||||||
|
Self::Always => 1,
|
||||||
|
Self::NotInFullscreen => 2,
|
||||||
|
Self::NobodyIsFullscreen => 3,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<c_uchar> for ForSingleWindow {
|
||||||
|
fn from(value: c_uchar) -> Self {
|
||||||
|
match value {
|
||||||
|
0 => Self::Never,
|
||||||
|
1 => Self::Always,
|
||||||
|
2 => Self::NotInFullscreen,
|
||||||
|
3 => Self::NobodyIsFullscreen,
|
||||||
|
_ => panic!("invalid value for type ForSingleWindow"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Settings {
|
impl Settings {
|
||||||
pub fn bar_on_top_by_default(&self) -> bool {
|
pub fn bar_on_top_by_default(&self) -> bool {
|
||||||
self.bar_on_top_by_default
|
self.bar_on_top_by_default
|
||||||
|
|
Loading…
Reference in New Issue