use glib::translate::*;
use std::fmt;
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[derive(Clone, Copy)]
#[non_exhaustive]
#[doc(alias = "AppIndicatorCategory")]
pub enum IndicatorCategory {
#[doc(alias = "APP_INDICATOR_CATEGORY_APPLICATION_STATUS")]
ApplicationStatus,
#[doc(alias = "APP_INDICATOR_CATEGORY_COMMUNICATIONS")]
Communications,
#[doc(alias = "APP_INDICATOR_CATEGORY_SYSTEM_SERVICES")]
SystemServices,
#[doc(alias = "APP_INDICATOR_CATEGORY_HARDWARE")]
Hardware,
#[doc(alias = "APP_INDICATOR_CATEGORY_OTHER")]
Other,
#[doc(hidden)]
__Unknown(i32),
}
impl fmt::Display for IndicatorCategory {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "IndicatorCategory::{}", match *self {
Self::ApplicationStatus => "ApplicationStatus",
Self::Communications => "Communications",
Self::SystemServices => "SystemServices",
Self::Hardware => "Hardware",
Self::Other => "Other",
_ => "Unknown",
})
}
}
#[doc(hidden)]
impl IntoGlib for IndicatorCategory {
type GlibType = ffi::AppIndicatorCategory;
fn into_glib(self) -> ffi::AppIndicatorCategory {
match self {
Self::ApplicationStatus => ffi::APP_INDICATOR_CATEGORY_APPLICATION_STATUS,
Self::Communications => ffi::APP_INDICATOR_CATEGORY_COMMUNICATIONS,
Self::SystemServices => ffi::APP_INDICATOR_CATEGORY_SYSTEM_SERVICES,
Self::Hardware => ffi::APP_INDICATOR_CATEGORY_HARDWARE,
Self::Other => ffi::APP_INDICATOR_CATEGORY_OTHER,
Self::__Unknown(value) => value,
}
}
}
#[doc(hidden)]
impl FromGlib<ffi::AppIndicatorCategory> for IndicatorCategory {
unsafe fn from_glib(value: ffi::AppIndicatorCategory) -> Self {
match value {
ffi::APP_INDICATOR_CATEGORY_APPLICATION_STATUS => Self::ApplicationStatus,
ffi::APP_INDICATOR_CATEGORY_COMMUNICATIONS => Self::Communications,
ffi::APP_INDICATOR_CATEGORY_SYSTEM_SERVICES => Self::SystemServices,
ffi::APP_INDICATOR_CATEGORY_HARDWARE => Self::Hardware,
ffi::APP_INDICATOR_CATEGORY_OTHER => Self::Other,
value => Self::__Unknown(value),
}
}
}
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[derive(Clone, Copy)]
#[non_exhaustive]
#[doc(alias = "AppIndicatorStatus")]
pub enum IndicatorStatus {
#[doc(alias = "APP_INDICATOR_STATUS_PASSIVE")]
Passive,
#[doc(alias = "APP_INDICATOR_STATUS_ACTIVE")]
Active,
#[doc(alias = "APP_INDICATOR_STATUS_ATTENTION")]
Attention,
#[doc(hidden)]
__Unknown(i32),
}
impl fmt::Display for IndicatorStatus {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "IndicatorStatus::{}", match *self {
Self::Passive => "Passive",
Self::Active => "Active",
Self::Attention => "Attention",
_ => "Unknown",
})
}
}
#[doc(hidden)]
impl IntoGlib for IndicatorStatus {
type GlibType = ffi::AppIndicatorStatus;
fn into_glib(self) -> ffi::AppIndicatorStatus {
match self {
Self::Passive => ffi::APP_INDICATOR_STATUS_PASSIVE,
Self::Active => ffi::APP_INDICATOR_STATUS_ACTIVE,
Self::Attention => ffi::APP_INDICATOR_STATUS_ATTENTION,
Self::__Unknown(value) => value,
}
}
}
#[doc(hidden)]
impl FromGlib<ffi::AppIndicatorStatus> for IndicatorStatus {
unsafe fn from_glib(value: ffi::AppIndicatorStatus) -> Self {
match value {
ffi::APP_INDICATOR_STATUS_PASSIVE => Self::Passive,
ffi::APP_INDICATOR_STATUS_ACTIVE => Self::Active,
ffi::APP_INDICATOR_STATUS_ATTENTION => Self::Attention,
value => Self::__Unknown(value),
}
}
}