1#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8 clippy::approx_constant,
9 clippy::type_complexity,
10 clippy::unreadable_literal,
11 clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use glib_sys as glib;
16use gobject_sys as gobject;
17
18#[cfg(unix)]
19#[allow(unused_imports)]
20use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
21#[allow(unused_imports)]
22use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
23#[allow(unused_imports)]
24use std::ffi::{
25 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
26};
27
28#[allow(unused_imports)]
29use glib::{gboolean, gconstpointer, gpointer, GType};
30
31pub type AstalRiverTransform = c_int;
33pub const ASTAL_RIVER_TRANSFORM_NORMAL: AstalRiverTransform = 0;
34pub const ASTAL_RIVER_TRANSFORM_ROTATE_90_DEG: AstalRiverTransform = 1;
35pub const ASTAL_RIVER_TRANSFORM_ROTATE_180_DEG: AstalRiverTransform = 2;
36pub const ASTAL_RIVER_TRANSFORM_ROTATE_270_DEG: AstalRiverTransform = 3;
37pub const ASTAL_RIVER_TRANSFORM_FLIPPED: AstalRiverTransform = 4;
38pub const ASTAL_RIVER_TRANSFORM_FLIPPED_ROTATE_90_DEG: AstalRiverTransform = 5;
39pub const ASTAL_RIVER_TRANSFORM_FLIPPED_ROTATE_180_DEG: AstalRiverTransform = 6;
40pub const ASTAL_RIVER_TRANSFORM_FLIPPED_ROTATE_270_DEG: AstalRiverTransform = 7;
41
42pub const ASTAL_RIVER_MAJOR_VERSION: c_int = 0;
44pub const ASTAL_RIVER_MICRO_VERSION: c_int = 0;
45pub const ASTAL_RIVER_MINOR_VERSION: c_int = 1;
46pub const ASTAL_RIVER_VERSION: &[u8] = b"0.1.0\0";
47
48pub type AstalRiverCommandCallback = Option<unsafe extern "C" fn(gboolean, *const c_char)>;
50pub type AstalRiverLayoutDemandCallback = Option<
51 unsafe extern "C" fn(
52 *mut AstalRiverLayout,
53 *mut AstalRiverOutput,
54 c_uint,
55 c_uint,
56 c_uint,
57 *mut *mut c_char,
58 *mut *mut glib::GList,
59 gpointer,
60 ),
61>;
62
63#[derive(Copy, Clone)]
65#[repr(C)]
66pub struct AstalRiverGeometry {
67 pub x: c_uint,
68 pub y: c_uint,
69 pub width: c_uint,
70 pub height: c_uint,
71}
72
73impl ::std::fmt::Debug for AstalRiverGeometry {
74 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
75 f.debug_struct(&format!("AstalRiverGeometry @ {self:p}"))
76 .field("x", &self.x)
77 .field("y", &self.y)
78 .field("width", &self.width)
79 .field("height", &self.height)
80 .finish()
81 }
82}
83
84#[derive(Copy, Clone)]
85#[repr(C)]
86pub struct AstalRiverLayoutClass {
87 pub parent_class: gobject::GObjectClass,
88}
89
90impl ::std::fmt::Debug for AstalRiverLayoutClass {
91 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
92 f.debug_struct(&format!("AstalRiverLayoutClass @ {self:p}"))
93 .field("parent_class", &self.parent_class)
94 .finish()
95 }
96}
97
98#[derive(Copy, Clone)]
99#[repr(C)]
100pub struct AstalRiverOutputClass {
101 pub parent_class: gobject::GObjectClass,
102}
103
104impl ::std::fmt::Debug for AstalRiverOutputClass {
105 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
106 f.debug_struct(&format!("AstalRiverOutputClass @ {self:p}"))
107 .field("parent_class", &self.parent_class)
108 .finish()
109 }
110}
111
112#[derive(Copy, Clone)]
113#[repr(C)]
114pub struct AstalRiverRiverClass {
115 pub parent_class: gobject::GObjectClass,
116}
117
118impl ::std::fmt::Debug for AstalRiverRiverClass {
119 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
120 f.debug_struct(&format!("AstalRiverRiverClass @ {self:p}"))
121 .field("parent_class", &self.parent_class)
122 .finish()
123 }
124}
125
126#[repr(C)]
128#[allow(dead_code)]
129pub struct AstalRiverLayout {
130 _data: [u8; 0],
131 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
132}
133
134impl ::std::fmt::Debug for AstalRiverLayout {
135 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
136 f.debug_struct(&format!("AstalRiverLayout @ {self:p}"))
137 .finish()
138 }
139}
140
141#[repr(C)]
142#[allow(dead_code)]
143pub struct AstalRiverOutput {
144 _data: [u8; 0],
145 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
146}
147
148impl ::std::fmt::Debug for AstalRiverOutput {
149 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
150 f.debug_struct(&format!("AstalRiverOutput @ {self:p}"))
151 .finish()
152 }
153}
154
155#[repr(C)]
156#[allow(dead_code)]
157pub struct AstalRiverRiver {
158 _data: [u8; 0],
159 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
160}
161
162impl ::std::fmt::Debug for AstalRiverRiver {
163 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
164 f.debug_struct(&format!("AstalRiverRiver @ {self:p}"))
165 .finish()
166 }
167}
168
169extern "C" {
170
171 pub fn astal_river_transform_get_type() -> GType;
175
176 pub fn astal_river_geometry_get_type() -> GType;
180 pub fn astal_river_geometry_new(
181 x: c_uint,
182 y: c_uint,
183 width: c_uint,
184 height: c_uint,
185 ) -> *mut AstalRiverGeometry;
186 pub fn astal_river_geometry_new_zero() -> *mut AstalRiverGeometry;
187 pub fn astal_river_geometry_copy(geometry: *mut AstalRiverGeometry) -> *mut AstalRiverGeometry;
188 pub fn astal_river_geometry_free(geometry: *mut AstalRiverGeometry);
189
190 pub fn astal_river_layout_get_type() -> GType;
194 pub fn astal_river_layout_get_namespace(self_: *mut AstalRiverLayout) -> *const c_char;
195 pub fn astal_river_layout_set_layout_demand_callback(
196 self_: *mut AstalRiverLayout,
197 callback: AstalRiverLayoutDemandCallback,
198 user_data: gpointer,
199 destroy_notify: glib::GDestroyNotify,
200 );
201
202 pub fn astal_river_output_get_type() -> GType;
206 pub fn astal_river_output_get_description(self_: *mut AstalRiverOutput) -> *const c_char;
207 pub fn astal_river_output_get_focused_tags(self_: *mut AstalRiverOutput) -> c_uint;
208 pub fn astal_river_output_get_focused_view(self_: *mut AstalRiverOutput) -> *mut c_char;
209 pub fn astal_river_output_get_height(self_: *mut AstalRiverOutput) -> c_int;
210 pub fn astal_river_output_get_id(self_: *mut AstalRiverOutput) -> c_uint;
211 pub fn astal_river_output_get_layout_name(self_: *mut AstalRiverOutput) -> *mut c_char;
212 pub fn astal_river_output_get_make(self_: *mut AstalRiverOutput) -> *const c_char;
213 pub fn astal_river_output_get_model(self_: *mut AstalRiverOutput) -> *const c_char;
214 pub fn astal_river_output_get_name(self_: *mut AstalRiverOutput) -> *mut c_char;
215 pub fn astal_river_output_get_occupied_tags(self_: *mut AstalRiverOutput) -> c_uint;
216 pub fn astal_river_output_get_physical_height(self_: *mut AstalRiverOutput) -> c_int;
217 pub fn astal_river_output_get_physical_width(self_: *mut AstalRiverOutput) -> c_int;
218 pub fn astal_river_output_get_refresh_rate(self_: *mut AstalRiverOutput) -> c_double;
219 pub fn astal_river_output_get_scale_factor(self_: *mut AstalRiverOutput) -> c_int;
220 pub fn astal_river_output_get_urgent_tags(self_: *mut AstalRiverOutput) -> c_uint;
221 pub fn astal_river_output_get_width(self_: *mut AstalRiverOutput) -> c_int;
222 pub fn astal_river_output_get_x(self_: *mut AstalRiverOutput) -> c_int;
223 pub fn astal_river_output_get_y(self_: *mut AstalRiverOutput) -> c_int;
224 pub fn astal_river_output_set_focused_tags(self_: *mut AstalRiverOutput, tags: c_uint);
225
226 pub fn astal_river_river_get_type() -> GType;
230 pub fn astal_river_river_new() -> *mut AstalRiverRiver;
231 pub fn astal_river_river_get_default() -> *mut AstalRiverRiver;
232 pub fn astal_river_river_get_focused_output(self_: *mut AstalRiverRiver) -> *mut c_char;
233 pub fn astal_river_river_get_focused_view(self_: *mut AstalRiverRiver) -> *mut c_char;
234 pub fn astal_river_river_get_mode(self_: *mut AstalRiverRiver) -> *mut c_char;
235 pub fn astal_river_river_get_output(
236 self_: *mut AstalRiverRiver,
237 name: *mut c_char,
238 ) -> *mut AstalRiverOutput;
239 pub fn astal_river_river_get_outputs(self_: *mut AstalRiverRiver) -> *mut glib::GList;
240 pub fn astal_river_river_new_layout(
241 self_: *mut AstalRiverRiver,
242 namespace: *const c_char,
243 ) -> *mut AstalRiverLayout;
244 pub fn astal_river_river_run_command_async(
245 self_: *mut AstalRiverRiver,
246 length: c_int,
247 cmd: *mut *const c_char,
248 callback: AstalRiverCommandCallback,
249 );
250
251 pub fn astal_river_get_default() -> *mut AstalRiverRiver;
255
256}