use gtk_layer_shell_sys as ffi;
use crate::Edge;
#[cfg(any(feature = "v0_6", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_6")))]
use crate::KeyboardMode;
use crate::Layer;
use glib::object::IsA;
use glib::translate::*;
#[doc(alias = "gtk_layer_auto_exclusive_zone_enable")]
pub fn auto_exclusive_zone_enable<P: IsA<gtk::Window>>(window: &P) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_auto_exclusive_zone_enable(window.as_ref().to_glib_none().0);
}
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_auto_exclusive_zone_is_enabled")]
pub fn auto_exclusive_zone_is_enabled<P: IsA<gtk::Window>>(window: &P) -> bool {
assert_initialized_main_thread!();
unsafe {
from_glib(ffi::gtk_layer_auto_exclusive_zone_is_enabled(
window.as_ref().to_glib_none().0,
))
}
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_get_anchor")]
#[doc(alias = "get_anchor")]
pub fn is_anchor<P: IsA<gtk::Window>>(window: &P, edge: Edge) -> bool {
assert_initialized_main_thread!();
unsafe {
from_glib(ffi::gtk_layer_get_anchor(
window.as_ref().to_glib_none().0,
edge.into_glib(),
))
}
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_get_exclusive_zone")]
#[doc(alias = "get_exclusive_zone")]
pub fn exclusive_zone<P: IsA<gtk::Window>>(window: &P) -> i32 {
assert_initialized_main_thread!();
unsafe { ffi::gtk_layer_get_exclusive_zone(window.as_ref().to_glib_none().0) }
}
#[cfg_attr(feature = "v0_6", deprecated = "Since 0.6")]
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_get_keyboard_interactivity")]
#[doc(alias = "get_keyboard_interactivity")]
pub fn is_keyboard_interactivity<P: IsA<gtk::Window>>(window: &P) -> bool {
assert_initialized_main_thread!();
unsafe {
from_glib(ffi::gtk_layer_get_keyboard_interactivity(
window.as_ref().to_glib_none().0,
))
}
}
#[cfg(any(feature = "v0_6", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_6")))]
#[doc(alias = "gtk_layer_get_keyboard_mode")]
#[doc(alias = "get_keyboard_mode")]
pub fn keyboard_mode<P: IsA<gtk::Window>>(window: &P) -> KeyboardMode {
assert_initialized_main_thread!();
unsafe {
from_glib(ffi::gtk_layer_get_keyboard_mode(
window.as_ref().to_glib_none().0,
))
}
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_get_layer")]
#[doc(alias = "get_layer")]
pub fn layer<P: IsA<gtk::Window>>(window: &P) -> Layer {
assert_initialized_main_thread!();
unsafe { from_glib(ffi::gtk_layer_get_layer(window.as_ref().to_glib_none().0)) }
}
#[cfg(any(feature = "v0_4", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_4")))]
#[doc(alias = "gtk_layer_get_major_version")]
#[doc(alias = "get_major_version")]
pub fn major_version() -> u32 {
assert_initialized_main_thread!();
unsafe { ffi::gtk_layer_get_major_version() }
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_get_margin")]
#[doc(alias = "get_margin")]
pub fn margin<P: IsA<gtk::Window>>(window: &P, edge: Edge) -> i32 {
assert_initialized_main_thread!();
unsafe { ffi::gtk_layer_get_margin(window.as_ref().to_glib_none().0, edge.into_glib()) }
}
#[cfg(any(feature = "v0_4", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_4")))]
#[doc(alias = "gtk_layer_get_micro_version")]
#[doc(alias = "get_micro_version")]
pub fn micro_version() -> u32 {
assert_initialized_main_thread!();
unsafe { ffi::gtk_layer_get_micro_version() }
}
#[cfg(any(feature = "v0_4", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_4")))]
#[doc(alias = "gtk_layer_get_minor_version")]
#[doc(alias = "get_minor_version")]
pub fn minor_version() -> u32 {
assert_initialized_main_thread!();
unsafe { ffi::gtk_layer_get_minor_version() }
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_get_monitor")]
#[doc(alias = "get_monitor")]
pub fn monitor<P: IsA<gtk::Window>>(window: &P) -> Option<gdk::Monitor> {
assert_initialized_main_thread!();
unsafe { from_glib_none(ffi::gtk_layer_get_monitor(window.as_ref().to_glib_none().0)) }
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_get_namespace")]
#[doc(alias = "get_namespace")]
pub fn namespace<P: IsA<gtk::Window>>(window: &P) -> Option<glib::GString> {
assert_initialized_main_thread!();
unsafe {
from_glib_none(ffi::gtk_layer_get_namespace(
window.as_ref().to_glib_none().0,
))
}
}
#[cfg(any(feature = "v0_6", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_6")))]
#[doc(alias = "gtk_layer_get_protocol_version")]
#[doc(alias = "get_protocol_version")]
pub fn protocol_version() -> u32 {
assert_initialized_main_thread!();
unsafe { ffi::gtk_layer_get_protocol_version() }
}
#[doc(alias = "gtk_layer_init_for_window")]
pub fn init_for_window<P: IsA<gtk::Window>>(window: &P) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_init_for_window(window.as_ref().to_glib_none().0);
}
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_is_layer_window")]
pub fn is_layer_window<P: IsA<gtk::Window>>(window: &P) -> bool {
assert_initialized_main_thread!();
unsafe {
from_glib(ffi::gtk_layer_is_layer_window(
window.as_ref().to_glib_none().0,
))
}
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "gtk_layer_is_supported")]
pub fn is_supported() -> bool {
assert_initialized_main_thread!();
unsafe { from_glib(ffi::gtk_layer_is_supported()) }
}
#[doc(alias = "gtk_layer_set_anchor")]
pub fn set_anchor<P: IsA<gtk::Window>>(window: &P, edge: Edge, anchor_to_edge: bool) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_set_anchor(
window.as_ref().to_glib_none().0,
edge.into_glib(),
anchor_to_edge.into_glib(),
);
}
}
#[doc(alias = "gtk_layer_set_exclusive_zone")]
pub fn set_exclusive_zone<P: IsA<gtk::Window>>(window: &P, exclusive_zone: i32) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_set_exclusive_zone(window.as_ref().to_glib_none().0, exclusive_zone);
}
}
#[cfg_attr(feature = "v0_6", deprecated = "Since 0.6")]
#[doc(alias = "gtk_layer_set_keyboard_interactivity")]
pub fn set_keyboard_interactivity<P: IsA<gtk::Window>>(window: &P, interactivity: bool) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_set_keyboard_interactivity(
window.as_ref().to_glib_none().0,
interactivity.into_glib(),
);
}
}
#[cfg(any(feature = "v0_6", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_6")))]
#[doc(alias = "gtk_layer_set_keyboard_mode")]
pub fn set_keyboard_mode<P: IsA<gtk::Window>>(window: &P, mode: KeyboardMode) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_set_keyboard_mode(window.as_ref().to_glib_none().0, mode.into_glib());
}
}
#[doc(alias = "gtk_layer_set_layer")]
pub fn set_layer<P: IsA<gtk::Window>>(window: &P, layer: Layer) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_set_layer(window.as_ref().to_glib_none().0, layer.into_glib());
}
}
#[doc(alias = "gtk_layer_set_margin")]
pub fn set_margin<P: IsA<gtk::Window>>(window: &P, edge: Edge, margin_size: i32) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_set_margin(
window.as_ref().to_glib_none().0,
edge.into_glib(),
margin_size,
);
}
}
#[doc(alias = "gtk_layer_set_monitor")]
pub fn set_monitor<P: IsA<gtk::Window>>(window: &P, monitor: &gdk::Monitor) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_set_monitor(window.as_ref().to_glib_none().0, monitor.to_glib_none().0);
}
}
#[doc(alias = "gtk_layer_set_namespace")]
pub fn set_namespace<P: IsA<gtk::Window>>(window: &P, name_space: &str) {
assert_initialized_main_thread!();
unsafe {
ffi::gtk_layer_set_namespace(
window.as_ref().to_glib_none().0,
name_space.to_glib_none().0,
);
}
}