Skip to main content

gio/auto/
application_command_line.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::{File, InputStream, ffi};
6use glib::{
7    prelude::*,
8    signal::{SignalHandlerId, connect_raw},
9    translate::*,
10};
11use std::boxed::Box as Box_;
12
13glib::wrapper! {
14    #[doc(alias = "GApplicationCommandLine")]
15    pub struct ApplicationCommandLine(Object<ffi::GApplicationCommandLine, ffi::GApplicationCommandLineClass>);
16
17    match fn {
18        type_ => || ffi::g_application_command_line_get_type(),
19    }
20}
21
22impl ApplicationCommandLine {
23    pub const NONE: Option<&'static ApplicationCommandLine> = None;
24}
25
26pub trait ApplicationCommandLineExt: IsA<ApplicationCommandLine> + 'static {
27    #[doc(alias = "g_application_command_line_create_file_for_arg")]
28    fn create_file_for_arg(&self, arg: impl AsRef<std::ffi::OsStr>) -> File {
29        unsafe {
30            from_glib_full(ffi::g_application_command_line_create_file_for_arg(
31                self.as_ref().to_glib_none().0,
32                arg.as_ref().to_glib_none().0,
33            ))
34        }
35    }
36
37    #[cfg(feature = "v2_80")]
38    #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
39    #[doc(alias = "g_application_command_line_done")]
40    fn done(&self) {
41        unsafe {
42            ffi::g_application_command_line_done(self.as_ref().to_glib_none().0);
43        }
44    }
45
46    #[doc(alias = "g_application_command_line_get_arguments")]
47    #[doc(alias = "get_arguments")]
48    fn arguments(&self) -> Vec<std::ffi::OsString> {
49        unsafe {
50            let mut argc = std::mem::MaybeUninit::uninit();
51            let ret = FromGlibContainer::from_glib_full_num(
52                ffi::g_application_command_line_get_arguments(
53                    self.as_ref().to_glib_none().0,
54                    argc.as_mut_ptr(),
55                ),
56                argc.assume_init() as _,
57            );
58            ret
59        }
60    }
61
62    #[doc(alias = "g_application_command_line_get_cwd")]
63    #[doc(alias = "get_cwd")]
64    fn cwd(&self) -> Option<std::path::PathBuf> {
65        unsafe {
66            from_glib_none(ffi::g_application_command_line_get_cwd(
67                self.as_ref().to_glib_none().0,
68            ))
69        }
70    }
71
72    #[doc(alias = "g_application_command_line_get_environ")]
73    #[doc(alias = "get_environ")]
74    fn environ(&self) -> Vec<std::ffi::OsString> {
75        unsafe {
76            FromGlibPtrContainer::from_glib_none(ffi::g_application_command_line_get_environ(
77                self.as_ref().to_glib_none().0,
78            ))
79        }
80    }
81
82    #[doc(alias = "g_application_command_line_get_is_remote")]
83    #[doc(alias = "get_is_remote")]
84    #[doc(alias = "is-remote")]
85    fn is_remote(&self) -> bool {
86        unsafe {
87            from_glib(ffi::g_application_command_line_get_is_remote(
88                self.as_ref().to_glib_none().0,
89            ))
90        }
91    }
92
93    #[doc(alias = "g_application_command_line_get_options_dict")]
94    #[doc(alias = "get_options_dict")]
95    fn options_dict(&self) -> glib::VariantDict {
96        unsafe {
97            from_glib_none(ffi::g_application_command_line_get_options_dict(
98                self.as_ref().to_glib_none().0,
99            ))
100        }
101    }
102
103    #[doc(alias = "g_application_command_line_get_platform_data")]
104    #[doc(alias = "get_platform_data")]
105    fn platform_data(&self) -> Option<glib::Variant> {
106        unsafe {
107            from_glib_full(ffi::g_application_command_line_get_platform_data(
108                self.as_ref().to_glib_none().0,
109            ))
110        }
111    }
112
113    #[doc(alias = "g_application_command_line_get_stdin")]
114    #[doc(alias = "get_stdin")]
115    fn stdin(&self) -> Option<InputStream> {
116        unsafe {
117            from_glib_full(ffi::g_application_command_line_get_stdin(
118                self.as_ref().to_glib_none().0,
119            ))
120        }
121    }
122
123    #[doc(alias = "g_application_command_line_getenv")]
124    fn getenv(&self, name: impl AsRef<std::ffi::OsStr>) -> Option<glib::GString> {
125        unsafe {
126            from_glib_none(ffi::g_application_command_line_getenv(
127                self.as_ref().to_glib_none().0,
128                name.as_ref().to_glib_none().0,
129            ))
130        }
131    }
132
133    //#[doc(alias = "g_application_command_line_print")]
134    //fn print(&self, format: &str, : /*Unknown conversion*//*Unimplemented*/Basic: VarArgs) {
135    //    unsafe { TODO: call ffi:g_application_command_line_print() }
136    //}
137
138    #[cfg(feature = "v2_80")]
139    #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
140    #[doc(alias = "g_application_command_line_print_literal")]
141    fn print_literal(&self, message: &str) {
142        unsafe {
143            ffi::g_application_command_line_print_literal(
144                self.as_ref().to_glib_none().0,
145                message.to_glib_none().0,
146            );
147        }
148    }
149
150    //#[doc(alias = "g_application_command_line_printerr")]
151    //fn printerr(&self, format: &str, : /*Unknown conversion*//*Unimplemented*/Basic: VarArgs) {
152    //    unsafe { TODO: call ffi:g_application_command_line_printerr() }
153    //}
154
155    #[cfg(feature = "v2_80")]
156    #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
157    #[doc(alias = "g_application_command_line_printerr_literal")]
158    fn printerr_literal(&self, message: &str) {
159        unsafe {
160            ffi::g_application_command_line_printerr_literal(
161                self.as_ref().to_glib_none().0,
162                message.to_glib_none().0,
163            );
164        }
165    }
166
167    #[doc(alias = "is-remote")]
168    fn connect_is_remote_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
169        unsafe extern "C" fn notify_is_remote_trampoline<
170            P: IsA<ApplicationCommandLine>,
171            F: Fn(&P) + 'static,
172        >(
173            this: *mut ffi::GApplicationCommandLine,
174            _param_spec: glib::ffi::gpointer,
175            f: glib::ffi::gpointer,
176        ) {
177            unsafe {
178                let f: &F = &*(f as *const F);
179                f(ApplicationCommandLine::from_glib_borrow(this).unsafe_cast_ref())
180            }
181        }
182        unsafe {
183            let f: Box_<F> = Box_::new(f);
184            connect_raw(
185                self.as_ptr() as *mut _,
186                c"notify::is-remote".as_ptr(),
187                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
188                    notify_is_remote_trampoline::<Self, F> as *const (),
189                )),
190                Box_::into_raw(f),
191            )
192        }
193    }
194}
195
196impl<O: IsA<ApplicationCommandLine>> ApplicationCommandLineExt for O {}