use crate::{QByteArray, QString, QStringList, QVector};
use std::pin::Pin;
#[cxx::bridge]
mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/qbytearray.h");
type QByteArray = crate::QByteArray;
include!("cxx-qt-lib/qstring.h");
type QString = crate::QString;
include!("cxx-qt-lib/qstringlist.h");
type QStringList = crate::QStringList;
include!("cxx-qt-lib/qvector.h");
type QVector_QByteArray = crate::QVector<QByteArray>;
include!("cxx-qt-lib/qguiapplication.h");
type QGuiApplication;
}
#[namespace = "rust::cxxqtlib1"]
unsafe extern "C++" {
#[doc(hidden)]
#[rust_name = "qguiapplication_new"]
fn qguiapplicationNew(args: &QVector_QByteArray) -> UniquePtr<QGuiApplication>;
}
#[namespace = "rust::cxxqtlib1"]
unsafe extern "C++" {
include!("cxx-qt-lib/qcoreapplication.h");
#[doc(hidden)]
#[rust_name = "qguiapplication_add_library_path"]
fn qapplicationAddLibraryPath(app: Pin<&mut QGuiApplication>, path: &QString);
#[doc(hidden)]
#[rust_name = "qguiapplication_application_name"]
fn qapplicationApplicationName(app: &QGuiApplication) -> QString;
#[doc(hidden)]
#[rust_name = "qguiapplication_application_version"]
fn qapplicationApplicationVersion(app: &QGuiApplication) -> QString;
#[doc(hidden)]
#[rust_name = "qguiapplication_exec"]
fn qapplicationExec(app: Pin<&mut QGuiApplication>) -> i32;
#[doc(hidden)]
#[rust_name = "qguiapplication_library_paths"]
fn qapplicationLibraryPaths(app: &QGuiApplication) -> QStringList;
#[doc(hidden)]
#[rust_name = "qguiapplication_organization_domain"]
fn qapplicationOrganizationDomain(app: &QGuiApplication) -> QString;
#[doc(hidden)]
#[rust_name = "qguiapplication_organization_name"]
fn qapplicationOrganizationName(app: &QGuiApplication) -> QString;
#[doc(hidden)]
#[rust_name = "qguiapplication_set_application_name"]
fn qapplicationSetApplicationName(app: Pin<&mut QGuiApplication>, name: &QString);
#[doc(hidden)]
#[rust_name = "qguiapplication_set_application_version"]
fn qapplicationSetApplicationVersion(app: Pin<&mut QGuiApplication>, version: &QString);
#[doc(hidden)]
#[rust_name = "qguiapplication_set_library_paths"]
fn qapplicationSetLibraryPaths(app: Pin<&mut QGuiApplication>, paths: &QStringList);
#[doc(hidden)]
#[rust_name = "qguiapplication_set_organization_domain"]
fn qapplicationSetOrganizationDomain(app: Pin<&mut QGuiApplication>, domain: &QString);
#[doc(hidden)]
#[rust_name = "qguiapplication_set_organization_name"]
fn qapplicationSetOrganizationName(app: Pin<&mut QGuiApplication>, name: &QString);
}
impl UniquePtr<QGuiApplication> {}
}
pub use ffi::QGuiApplication;
impl QGuiApplication {
pub fn add_library_path(self: Pin<&mut Self>, path: &QString) {
ffi::qguiapplication_add_library_path(self, path);
}
pub fn application_name(&self) -> QString {
ffi::qguiapplication_application_name(self)
}
pub fn application_version(&self) -> QString {
ffi::qguiapplication_application_version(self)
}
pub fn exec(self: Pin<&mut Self>) -> i32 {
ffi::qguiapplication_exec(self)
}
pub fn library_paths(&self) -> QStringList {
ffi::qguiapplication_library_paths(self)
}
pub fn new() -> cxx::UniquePtr<Self> {
let mut vector = QVector::<QByteArray>::default();
for arg in std::env::args_os() {
#[cfg(unix)]
use std::os::unix::ffi::OsStrExt;
#[cfg(windows)]
let arg = arg.to_string_lossy();
vector.append(QByteArray::from(arg.as_bytes()));
}
ffi::qguiapplication_new(&vector)
}
pub fn organization_domain(&self) -> QString {
ffi::qguiapplication_organization_domain(self)
}
pub fn organization_name(&self) -> QString {
ffi::qguiapplication_organization_name(self)
}
pub fn set_application_name(self: Pin<&mut Self>, name: &QString) {
ffi::qguiapplication_set_application_name(self, name);
}
pub fn set_application_version(self: Pin<&mut Self>, version: &QString) {
ffi::qguiapplication_set_application_version(self, version);
}
pub fn set_library_paths(self: Pin<&mut Self>, paths: &QStringList) {
ffi::qguiapplication_set_library_paths(self, paths);
}
pub fn qguiapplication_set_organization_domain(self: Pin<&mut Self>, domain: &QString) {
ffi::qguiapplication_set_organization_domain(self, domain);
}
pub fn set_organization_name(self: Pin<&mut Self>, name: &QString) {
ffi::qguiapplication_set_organization_name(self, name);
}
}