Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions gio/Gir.toml
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,7 @@ generate_builder = true
[[object]]
name = "Gio.ApplicationCommandLine"
status = "generate"
manual_traits = ["ApplicationCommandLineExtManual"]
[[object.function]]
name = "create_file_for_arg"
[[object.function.parameter]]
Expand All @@ -364,6 +365,16 @@ status = "generate"
[[object.function.parameter]]
name = "name"
string_type = "os_string"
[[object.function]]
name = "set_exit_status"
# Uses glib::ExitCode for consitency with gio::Application interfaces
manual = true
doc_trait_name = "ApplicationCommandLineExtManual"
[[object.function]]
name = "get_exit_status"
# Uses glib::ExitCode for consitency with gio::Application interfaces
manual = true
doc_trait_name = "ApplicationCommandLineExtManual"

[[object]]
name = "Gio.ApplicationFlags"
Expand Down
36 changes: 36 additions & 0 deletions gio/src/application_command_line.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// Take a look at the license at the top of the repository in the LICENSE file.

use std::{boxed::Box as Box_, mem::transmute, ops::ControlFlow};

use glib::{
prelude::*,
signal::{connect_raw, SignalHandlerId},
translate::*,
ExitCode, GString,
};

use crate::{ffi, Application, ApplicationCommandLine, ExitCode, File};

pub trait ApplicationCommandLineExtManual: IsA<Application> {
#[doc(alias = "g_application_command_line_get_exit_status")]
#[doc(alias = "get_exit_status")]
fn exit_code(&self) -> ExitCode {
let status = unsafe {
ffi::g_application_command_line_get_exit_status(self.as_ref().to_glib_none().0)
};

ExitCode::try_from(status).unwrap()
}

#[doc(alias = "g_application_command_line_set_exit_status")]
#[doc(alias = "set_exit_status")]
fn set_exit_code(&self, exit_code: ExitCode) {
let status = i32::from(exit_code.get());

unsafe {
ffi::g_application_command_line_set_exit_status(self.as_ref().to_glib_none().0, status);
}
}
}

impl<O: IsA<Application>> ApplicationExtManual for O {}
16 changes: 0 additions & 16 deletions gio/src/auto/application_command_line.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,6 @@ pub trait ApplicationCommandLineExt: IsA<ApplicationCommandLine> + 'static {
}
}

#[doc(alias = "g_application_command_line_get_exit_status")]
#[doc(alias = "get_exit_status")]
fn exit_status(&self) -> i32 {
unsafe { ffi::g_application_command_line_get_exit_status(self.as_ref().to_glib_none().0) }
}

#[doc(alias = "g_application_command_line_get_is_remote")]
#[doc(alias = "get_is_remote")]
#[doc(alias = "is-remote")]
Expand Down Expand Up @@ -170,16 +164,6 @@ pub trait ApplicationCommandLineExt: IsA<ApplicationCommandLine> + 'static {
}
}

#[doc(alias = "g_application_command_line_set_exit_status")]
fn set_exit_status(&self, exit_status: i32) {
unsafe {
ffi::g_application_command_line_set_exit_status(
self.as_ref().to_glib_none().0,
exit_status,
);
}
}

#[doc(alias = "is-remote")]
fn connect_is_remote_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_is_remote_trampoline<
Expand Down
Loading