use crate::IndicatorCategory;
use crate::IndicatorStatus;
use gdk::cairo::ffi::FORMAT_A_RGB32;
use glib::object::Cast;
use glib::object::IsA;
use glib::signal::connect_raw;
use glib::signal::SignalHandlerId;
use glib::translate::*;
use glib::StaticType;
use glib::ToValue;
use std::boxed::Box as Box_;
use std::fmt;
use std::mem::transmute;
glib::wrapper! {
#[doc(alias = "AppIndicator")]
pub struct Indicator(Object<ffi::AppIndicator, ffi::AppIndicatorClass>);
match fn {
type_ => || ffi::app_indicator_get_type(),
}
}
impl Indicator {
pub const NONE: Option<&'static Indicator> = None;
#[doc(alias = "app_indicator_new")]
pub fn new(id: &str, icon_name: &str, category: IndicatorCategory) -> Indicator {
unsafe {
from_glib_full(ffi::app_indicator_new(id.to_glib_none().0, icon_name.to_glib_none().0, category.into_glib()))
}
}
#[doc(alias = "app_indicator_new_with_path")]
#[doc(alias = "new_with_path")]
pub fn with_path(id: &str, icon_name: &str, category: IndicatorCategory, icon_theme_path: &str) -> Indicator {
unsafe {
from_glib_full(ffi::app_indicator_new_with_path(id.to_glib_none().0, icon_name.to_glib_none().0, category.into_glib(), icon_theme_path.to_glib_none().0))
}
}
}
pub trait AppIndicatorExt: 'static {
#[doc(alias = "app_indicator_build_menu_from_desktop")]
fn build_menu_from_desktop(&self, desktop_file: &str, desktop_profile: &str);
#[doc(alias = "app_indicator_get_attention_icon")]
#[doc(alias = "get_attention_icon")]
fn attention_icon(&self) -> Option<glib::GString>;
#[doc(alias = "app_indicator_get_attention_icon_desc")]
#[doc(alias = "get_attention_icon_desc")]
fn attention_icon_desc(&self) -> Option<glib::GString>;
#[doc(alias = "app_indicator_get_category")]
#[doc(alias = "get_category")]
fn category(&self) -> IndicatorCategory;
#[doc(alias = "app_indicator_get_icon")]
#[doc(alias = "get_icon")]
fn icon(&self) -> Option<glib::GString>;
#[doc(alias = "app_indicator_get_icon_desc")]
#[doc(alias = "get_icon_desc")]
fn icon_desc(&self) -> Option<glib::GString>;
#[doc(alias = "app_indicator_get_icon_theme_path")]
#[doc(alias = "get_icon_theme_path")]
fn icon_theme_path(&self) -> Option<glib::GString>;
#[doc(alias = "app_indicator_get_id")]
#[doc(alias = "get_id")]
fn id(&self) -> Option<glib::GString>;
#[doc(alias = "app_indicator_get_label")]
#[doc(alias = "get_label")]
fn label(&self) -> Option<glib::GString>;
#[doc(alias = "app_indicator_get_label_guide")]
#[doc(alias = "get_label_guide")]
fn label_guide(&self) -> Option<glib::GString>;
#[doc(alias = "app_indicator_get_menu")]
#[doc(alias = "get_menu")]
fn menu(&self) -> Option<gtk::Menu>;
#[doc(alias = "app_indicator_get_ordering_index")]
#[doc(alias = "get_ordering_index")]
fn ordering_index(&self) -> u32;
#[doc(alias = "app_indicator_get_secondary_activate_target")]
#[doc(alias = "get_secondary_activate_target")]
fn secondary_activate_target(&self) -> Option<gtk::Widget>;
#[doc(alias = "app_indicator_get_status")]
#[doc(alias = "get_status")]
fn status(&self) -> IndicatorStatus;
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "app_indicator_get_title")]
#[doc(alias = "get_title")]
fn title(&self) -> Option<glib::GString>;
#[doc(alias = "app_indicator_set_attention_icon")]
fn set_attention_icon(&self, icon_name: &str);
#[doc(alias = "app_indicator_set_attention_icon_full")]
fn set_attention_icon_full(&self, icon_name: &str, icon_desc: &str);
#[doc(alias = "app_indicator_set_icon")]
fn set_icon(&self, icon_name: &str);
#[doc(alias = "app_indicator_set_icon_full")]
fn set_icon_full(&self, icon_name: &str, icon_desc: &str);
#[doc(alias = "app_indicator_set_icon_theme_path")]
fn set_icon_theme_path(&self, icon_theme_path: &str);
#[doc(alias = "app_indicator_set_label")]
fn set_label(&self, label: &str, guide: &str);
#[doc(alias = "app_indicator_set_menu")]
fn set_menu(&self, menu: Option<&impl IsA<gtk::Menu>>);
#[doc(alias = "app_indicator_set_ordering_index")]
fn set_ordering_index(&self, ordering_index: u32);
#[doc(alias = "app_indicator_set_secondary_activate_target")]
fn set_secondary_activate_target(&self, menuitem: Option<&impl IsA<gtk::Widget>>);
#[doc(alias = "app_indicator_set_status")]
fn set_status(&self, status: IndicatorStatus);
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
#[doc(alias = "app_indicator_set_title")]
fn set_title(&self, title: Option<&str>);
#[doc(alias = "attention-icon-desc")]
fn set_attention_icon_desc(&self, attention_icon_desc: Option<&str>);
#[doc(alias = "attention-icon-name")]
fn attention_icon_name(&self) -> Option<glib::GString>;
#[doc(alias = "attention-icon-name")]
fn set_attention_icon_name(&self, attention_icon_name: Option<&str>);
fn is_connected(&self) -> bool;
#[doc(alias = "icon-desc")]
fn set_icon_desc(&self, icon_desc: Option<&str>);
#[doc(alias = "icon-name")]
fn icon_name(&self) -> Option<glib::GString>;
#[doc(alias = "icon-name")]
fn set_icon_name(&self, icon_name: Option<&str>);
#[doc(alias = "label-guide")]
fn set_label_guide(&self, label_guide: Option<&str>);
fn get_property_title(&self) -> Option<glib::GString>;
fn set_property_title(&self, title: Option<&str>);
#[doc(alias = "connection-changed")]
fn connect_connection_changed<F: Fn(&Self, bool) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "new-attention-icon")]
fn connect_new_attention_icon<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "new-icon")]
fn connect_new_icon<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "new-icon-theme-path")]
fn connect_new_icon_theme_path<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "new-label")]
fn connect_new_label<F: Fn(&Self, &str, &str) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "new-status")]
fn connect_new_status<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "scroll-event")]
fn connect_scroll_event<F: Fn(&Self, i32, gdk::ScrollDirection) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "attention-icon-desc")]
fn connect_attention_icon_desc_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "attention-icon-name")]
fn connect_attention_icon_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "connected")]
fn connect_connected_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "icon-desc")]
fn connect_icon_desc_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "icon-name")]
fn connect_icon_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "icon-theme-path")]
fn connect_icon_theme_path_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "label")]
fn connect_label_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "label-guide")]
fn connect_label_guide_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "ordering-index")]
fn connect_ordering_index_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "status")]
fn connect_status_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
#[doc(alias = "title")]
fn connect_title_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
}
impl<O: IsA<Indicator>> AppIndicatorExt for O {
fn build_menu_from_desktop(&self, desktop_file: &str, desktop_profile: &str) {
unsafe {
ffi::app_indicator_build_menu_from_desktop(self.as_ref().to_glib_none().0, desktop_file.to_glib_none().0, desktop_profile.to_glib_none().0);
}
}
fn attention_icon(&self) -> Option<glib::GString> {
unsafe {
from_glib_none(ffi::app_indicator_get_attention_icon(self.as_ref().to_glib_none().0))
}
}
fn attention_icon_desc(&self) -> Option<glib::GString> {
unsafe {
from_glib_none(ffi::app_indicator_get_attention_icon_desc(self.as_ref().to_glib_none().0))
}
}
fn category(&self) -> IndicatorCategory {
unsafe {
from_glib(ffi::app_indicator_get_category(self.as_ref().to_glib_none().0))
}
}
fn icon(&self) -> Option<glib::GString> {
unsafe {
from_glib_none(ffi::app_indicator_get_icon(self.as_ref().to_glib_none().0))
}
}
fn icon_desc(&self) -> Option<glib::GString> {
unsafe {
from_glib_none(ffi::app_indicator_get_icon_desc(self.as_ref().to_glib_none().0))
}
}
fn icon_theme_path(&self) -> Option<glib::GString> {
unsafe {
from_glib_none(ffi::app_indicator_get_icon_theme_path(self.as_ref().to_glib_none().0))
}
}
fn id(&self) -> Option<glib::GString> {
unsafe {
from_glib_none(ffi::app_indicator_get_id(self.as_ref().to_glib_none().0))
}
}
fn label(&self) -> Option<glib::GString> {
unsafe {
from_glib_none(ffi::app_indicator_get_label(self.as_ref().to_glib_none().0))
}
}
fn label_guide(&self) -> Option<glib::GString> {
unsafe {
from_glib_none(ffi::app_indicator_get_label_guide(self.as_ref().to_glib_none().0))
}
}
fn menu(&self) -> Option<gtk::Menu> {
unsafe {
from_glib_none(ffi::app_indicator_get_menu(self.as_ref().to_glib_none().0))
}
}
fn ordering_index(&self) -> u32 {
unsafe {
ffi::app_indicator_get_ordering_index(self.as_ref().to_glib_none().0)
}
}
fn secondary_activate_target(&self) -> Option<gtk::Widget> {
unsafe {
from_glib_none(ffi::app_indicator_get_secondary_activate_target(self.as_ref().to_glib_none().0))
}
}
fn status(&self) -> IndicatorStatus {
unsafe {
from_glib(ffi::app_indicator_get_status(self.as_ref().to_glib_none().0))
}
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
fn title(&self) -> Option<glib::GString> {
unsafe {
from_glib_none(ffi::app_indicator_get_title(self.as_ref().to_glib_none().0))
}
}
fn set_attention_icon(&self, icon_name: &str) {
unsafe {
ffi::app_indicator_set_attention_icon(self.as_ref().to_glib_none().0, icon_name.to_glib_none().0);
}
}
fn set_attention_icon_full(&self, icon_name: &str, icon_desc: &str) {
unsafe {
ffi::app_indicator_set_attention_icon_full(self.as_ref().to_glib_none().0, icon_name.to_glib_none().0, icon_desc.to_glib_none().0);
}
}
fn set_icon(&self, icon_name: &str) {
unsafe {
ffi::app_indicator_set_icon(self.as_ref().to_glib_none().0, icon_name.to_glib_none().0);
}
}
fn set_icon_full(&self, icon_name: &str, icon_desc: &str) {
unsafe {
ffi::app_indicator_set_icon_full(self.as_ref().to_glib_none().0, icon_name.to_glib_none().0, icon_desc.to_glib_none().0);
}
}
fn set_icon_theme_path(&self, icon_theme_path: &str) {
unsafe {
ffi::app_indicator_set_icon_theme_path(self.as_ref().to_glib_none().0, icon_theme_path.to_glib_none().0);
}
}
fn set_label(&self, label: &str, guide: &str) {
unsafe {
ffi::app_indicator_set_label(self.as_ref().to_glib_none().0, label.to_glib_none().0, guide.to_glib_none().0);
}
}
fn set_menu(&self, menu: Option<&impl IsA<gtk::Menu>>) {
unsafe {
ffi::app_indicator_set_menu(self.as_ref().to_glib_none().0, menu.map(|p| p.as_ref()).to_glib_none().0);
}
}
fn set_ordering_index(&self, ordering_index: u32) {
unsafe {
ffi::app_indicator_set_ordering_index(self.as_ref().to_glib_none().0, ordering_index);
}
}
fn set_secondary_activate_target(&self, menuitem: Option<&impl IsA<gtk::Widget>>) {
unsafe {
ffi::app_indicator_set_secondary_activate_target(self.as_ref().to_glib_none().0, menuitem.map(|p| p.as_ref()).to_glib_none().0);
}
}
fn set_status(&self, status: IndicatorStatus) {
unsafe {
ffi::app_indicator_set_status(self.as_ref().to_glib_none().0, status.into_glib());
}
}
#[cfg(any(feature = "v0_5", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
fn set_title(&self, title: Option<&str>) {
unsafe {
ffi::app_indicator_set_title(self.as_ref().to_glib_none().0, title.to_glib_none().0);
}
}
fn set_attention_icon_desc(&self, attention_icon_desc: Option<&str>) {
glib::ObjectExt::set_property(self.as_ref(),"attention-icon-desc", &attention_icon_desc)
}
fn attention_icon_name(&self) -> Option<glib::GString> {
glib::ObjectExt::property(self.as_ref(), "attention-icon-name")
}
fn set_attention_icon_name(&self, attention_icon_name: Option<&str>) {
glib::ObjectExt::set_property(self.as_ref(),"attention-icon-name", &attention_icon_name)
}
fn is_connected(&self) -> bool {
glib::ObjectExt::property(self.as_ref(), "connected")
}
fn set_icon_desc(&self, icon_desc: Option<&str>) {
glib::ObjectExt::set_property(self.as_ref(),"icon-desc", &icon_desc)
}
fn icon_name(&self) -> Option<glib::GString> {
glib::ObjectExt::property(self.as_ref(), "icon-name")
}
fn set_icon_name(&self, icon_name: Option<&str>) {
glib::ObjectExt::set_property(self.as_ref(),"icon-name", &icon_name)
}
fn set_label_guide(&self, label_guide: Option<&str>) {
glib::ObjectExt::set_property(self.as_ref(),"label-guide", &label_guide)
}
fn get_property_title(&self) -> Option<glib::GString> {
glib::ObjectExt::property(self.as_ref(), "title")
}
fn set_property_title(&self, title: Option<&str>) {
glib::ObjectExt::set_property(self.as_ref(),"title", &title)
}
fn connect_connection_changed<F: Fn(&Self, bool) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn connection_changed_trampoline<P: IsA<Indicator>, F: Fn(&P, bool) + 'static>(this: *mut ffi::AppIndicator, arg1: glib::ffi::gboolean, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref(), from_glib(arg1))
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"connection-changed\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(connection_changed_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_new_attention_icon<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn new_attention_icon_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"new-attention-icon\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(new_attention_icon_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_new_icon<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn new_icon_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"new-icon\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(new_icon_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_new_icon_theme_path<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn new_icon_theme_path_trampoline<P: IsA<Indicator>, F: Fn(&P, &str) + 'static>(this: *mut ffi::AppIndicator, object: *mut libc::c_char, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref(), &glib::GString::from_glib_borrow(object))
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"new-icon-theme-path\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(new_icon_theme_path_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_new_label<F: Fn(&Self, &str, &str) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn new_label_trampoline<P: IsA<Indicator>, F: Fn(&P, &str, &str) + 'static>(this: *mut ffi::AppIndicator, object: *mut libc::c_char, p0: *mut libc::c_char, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref(), &glib::GString::from_glib_borrow(object), &glib::GString::from_glib_borrow(p0))
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"new-label\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(new_label_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_new_status<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn new_status_trampoline<P: IsA<Indicator>, F: Fn(&P, &str) + 'static>(this: *mut ffi::AppIndicator, arg1: *mut libc::c_char, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref(), &glib::GString::from_glib_borrow(arg1))
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"new-status\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(new_status_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_scroll_event<F: Fn(&Self, i32, gdk::ScrollDirection) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn scroll_event_trampoline<P: IsA<Indicator>, F: Fn(&P, i32, gdk::ScrollDirection) + 'static>(this: *mut ffi::AppIndicator, arg1: libc::c_int, arg2: libc::c_uint, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
let direction = match arg2 as i32 {
gdk_sys::GDK_SCROLL_UP => gdk::ScrollDirection::Up,
gdk_sys::GDK_SCROLL_DOWN => gdk::ScrollDirection::Down,
gdk_sys::GDK_SCROLL_LEFT => gdk::ScrollDirection::Left,
gdk_sys::GDK_SCROLL_RIGHT => gdk::ScrollDirection::Right,
gdk_sys::GDK_SCROLL_SMOOTH => gdk::ScrollDirection::Smooth,
arg2 => gdk::ScrollDirection::__Unknown(arg2),
};
f(Indicator::from_glib_borrow(this).unsafe_cast_ref(), arg1, direction)
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"scroll-event\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(scroll_event_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_attention_icon_desc_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_attention_icon_desc_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::attention-icon-desc\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_attention_icon_desc_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_attention_icon_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_attention_icon_name_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::attention-icon-name\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_attention_icon_name_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_connected_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_connected_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::connected\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_connected_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_icon_desc_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_icon_desc_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::icon-desc\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_icon_desc_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_icon_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_icon_name_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::icon-name\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_icon_name_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_icon_theme_path_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_icon_theme_path_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::icon-theme-path\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_icon_theme_path_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_label_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_label_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::label\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_label_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_label_guide_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_label_guide_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::label-guide\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_label_guide_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_ordering_index_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_ordering_index_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::ordering-index\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_ordering_index_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_status_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_status_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::status\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_status_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
fn connect_title_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_title_trampoline<P: IsA<Indicator>, F: Fn(&P) + 'static>(this: *mut ffi::AppIndicator, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
let f: &F = &*(f as *const F);
f(Indicator::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(self.as_ptr() as *mut _, b"notify::title\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(notify_title_trampoline::<Self, F> as *const ())), Box_::into_raw(f))
}
}
}
impl fmt::Display for Indicator {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("Indicator")
}
}