appindicator3-sys 0.0.4

FFI bindings for the AppIndicator and AyatanaAppIndicator library
Documentation
// Generated by gir (https://github.com/gtk-rs/gir @ bb52094f1b0d)
// from ../gir-files (@ e570164a57ea)
// DO NOT EDIT

#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
#![allow(clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal, clippy::upper_case_acronyms)]
#![cfg_attr(feature = "dox", feature(doc_cfg))]


mod manual;

pub use manual::*;

#[allow(unused_imports)]
use libc::{c_int, c_char, c_uchar, c_float, c_uint, c_double,
    c_short, c_ushort, c_long, c_ulong,
    c_void, size_t, ssize_t, intptr_t, uintptr_t, FILE};

#[allow(unused_imports)]
use glib::{gboolean, gconstpointer, gpointer, GType};

// Enums
pub type AppIndicatorCategory = c_int;
pub const APP_INDICATOR_CATEGORY_APPLICATION_STATUS: AppIndicatorCategory = 0;
pub const APP_INDICATOR_CATEGORY_COMMUNICATIONS: AppIndicatorCategory = 1;
pub const APP_INDICATOR_CATEGORY_SYSTEM_SERVICES: AppIndicatorCategory = 2;
pub const APP_INDICATOR_CATEGORY_HARDWARE: AppIndicatorCategory = 3;
pub const APP_INDICATOR_CATEGORY_OTHER: AppIndicatorCategory = 4;

pub type AppIndicatorStatus = c_int;
pub const APP_INDICATOR_STATUS_PASSIVE: AppIndicatorStatus = 0;
pub const APP_INDICATOR_STATUS_ACTIVE: AppIndicatorStatus = 1;
pub const APP_INDICATOR_STATUS_ATTENTION: AppIndicatorStatus = 2;

// Constants
pub const APP_INDICATOR_SIGNAL_CONNECTION_CHANGED: *const c_char = b"connection-changed\0" as *const u8 as *const c_char;
pub const APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON: *const c_char = b"new-attention-icon\0" as *const u8 as *const c_char;
pub const APP_INDICATOR_SIGNAL_NEW_ICON: *const c_char = b"new-icon\0" as *const u8 as *const c_char;
pub const APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH: *const c_char = b"new-icon-theme-path\0" as *const u8 as *const c_char;
pub const APP_INDICATOR_SIGNAL_NEW_LABEL: *const c_char = b"new-label\0" as *const u8 as *const c_char;
pub const APP_INDICATOR_SIGNAL_NEW_STATUS: *const c_char = b"new-status\0" as *const u8 as *const c_char;
pub const APP_INDICATOR_SIGNAL_SCROLL_EVENT: *const c_char = b"scroll-event\0" as *const u8 as *const c_char;

// Records
#[derive(Copy, Clone)]
#[repr(C)]
pub struct AppIndicatorClass {
    pub parent_class: gobject::GObjectClass,
    pub new_icon: Option<unsafe extern "C" fn(*mut AppIndicator, gpointer)>,
    pub new_attention_icon: Option<unsafe extern "C" fn(*mut AppIndicator, gpointer)>,
    pub new_status: Option<unsafe extern "C" fn(*mut AppIndicator, *const c_char, gpointer)>,
    pub new_icon_theme_path: Option<unsafe extern "C" fn(*mut AppIndicator, *const c_char, gpointer)>,
    pub new_label: Option<unsafe extern "C" fn(*mut AppIndicator, *const c_char, *const c_char, gpointer)>,
    pub connection_changed: Option<unsafe extern "C" fn(*mut AppIndicator, gboolean, gpointer)>,
    pub scroll_event: Option<unsafe extern "C" fn(*mut AppIndicator, c_int, gdk::GdkScrollDirection, gpointer)>,
    pub app_indicator_reserved_ats: Option<unsafe extern "C" fn()>,
    pub fallback: Option<unsafe extern "C" fn(*mut AppIndicator) -> *mut gtk::GtkStatusIcon>,
    pub unfallback: Option<unsafe extern "C" fn(*mut AppIndicator, *mut gtk::GtkStatusIcon)>,
    pub app_indicator_reserved_1: Option<unsafe extern "C" fn()>,
    pub app_indicator_reserved_2: Option<unsafe extern "C" fn()>,
    pub app_indicator_reserved_3: Option<unsafe extern "C" fn()>,
    pub app_indicator_reserved_4: Option<unsafe extern "C" fn()>,
    pub app_indicator_reserved_5: Option<unsafe extern "C" fn()>,
    pub app_indicator_reserved_6: Option<unsafe extern "C" fn()>,
}

impl ::std::fmt::Debug for AppIndicatorClass {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("AppIndicatorClass @ {:p}", self))
         .field("parent_class", &self.parent_class)
         .field("new_icon", &self.new_icon)
         .field("new_attention_icon", &self.new_attention_icon)
         .field("new_status", &self.new_status)
         .field("new_icon_theme_path", &self.new_icon_theme_path)
         .field("new_label", &self.new_label)
         .field("connection_changed", &self.connection_changed)
         .field("scroll_event", &self.scroll_event)
         .field("app_indicator_reserved_ats", &self.app_indicator_reserved_ats)
         .field("fallback", &self.fallback)
         .field("unfallback", &self.unfallback)
         .field("app_indicator_reserved_1", &self.app_indicator_reserved_1)
         .field("app_indicator_reserved_2", &self.app_indicator_reserved_2)
         .field("app_indicator_reserved_3", &self.app_indicator_reserved_3)
         .field("app_indicator_reserved_4", &self.app_indicator_reserved_4)
         .field("app_indicator_reserved_5", &self.app_indicator_reserved_5)
         .field("app_indicator_reserved_6", &self.app_indicator_reserved_6)
         .finish()
    }
}

#[repr(C)]
pub struct _AppIndicatorPrivate {
    _data: [u8; 0],
    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}

pub type AppIndicatorPrivate = *mut _AppIndicatorPrivate;

// Classes
#[derive(Copy, Clone)]
#[repr(C)]
pub struct AppIndicator {
    pub parent: gobject::GObject,
    pub priv_: *mut AppIndicatorPrivate,
}

impl ::std::fmt::Debug for AppIndicator {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("AppIndicator @ {:p}", self))
         .field("parent", &self.parent)
         .field("priv_", &self.priv_)
         .finish()
    }
}

extern "C" {

    //=========================================================================
    // AppIndicator
    //=========================================================================
    pub fn app_indicator_get_type() -> GType;
    pub fn app_indicator_new(id: *const c_char, icon_name: *const c_char, category: AppIndicatorCategory) -> *mut AppIndicator;
    pub fn app_indicator_new_with_path(id: *const c_char, icon_name: *const c_char, category: AppIndicatorCategory, icon_theme_path: *const c_char) -> *mut AppIndicator;
    pub fn app_indicator_build_menu_from_desktop(self_: *mut AppIndicator, desktop_file: *const c_char, desktop_profile: *const c_char);
    pub fn app_indicator_get_attention_icon(self_: *mut AppIndicator) -> *const c_char;
    pub fn app_indicator_get_attention_icon_desc(self_: *mut AppIndicator) -> *const c_char;
    pub fn app_indicator_get_category(self_: *mut AppIndicator) -> AppIndicatorCategory;
    pub fn app_indicator_get_icon(self_: *mut AppIndicator) -> *const c_char;
    pub fn app_indicator_get_icon_desc(self_: *mut AppIndicator) -> *const c_char;
    pub fn app_indicator_get_icon_theme_path(self_: *mut AppIndicator) -> *const c_char;
    pub fn app_indicator_get_id(self_: *mut AppIndicator) -> *const c_char;
    pub fn app_indicator_get_label(self_: *mut AppIndicator) -> *const c_char;
    pub fn app_indicator_get_label_guide(self_: *mut AppIndicator) -> *const c_char;
    pub fn app_indicator_get_menu(self_: *mut AppIndicator) -> *mut gtk::GtkMenu;
    pub fn app_indicator_get_ordering_index(self_: *mut AppIndicator) -> u32;
    pub fn app_indicator_get_secondary_activate_target(self_: *mut AppIndicator) -> *mut gtk::GtkWidget;
    pub fn app_indicator_get_status(self_: *mut AppIndicator) -> AppIndicatorStatus;
    #[cfg(any(feature = "v0_5", feature = "dox"))]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
    pub fn app_indicator_get_title(self_: *mut AppIndicator) -> *const c_char;
    pub fn app_indicator_set_attention_icon(self_: *mut AppIndicator, icon_name: *const c_char);
    pub fn app_indicator_set_attention_icon_full(self_: *mut AppIndicator, icon_name: *const c_char, icon_desc: *const c_char);
    pub fn app_indicator_set_icon(self_: *mut AppIndicator, icon_name: *const c_char);
    pub fn app_indicator_set_icon_full(self_: *mut AppIndicator, icon_name: *const c_char, icon_desc: *const c_char);
    pub fn app_indicator_set_icon_theme_path(self_: *mut AppIndicator, icon_theme_path: *const c_char);
    pub fn app_indicator_set_label(self_: *mut AppIndicator, label: *const c_char, guide: *const c_char);
    pub fn app_indicator_set_menu(self_: *mut AppIndicator, menu: *mut gtk::GtkMenu);
    pub fn app_indicator_set_ordering_index(self_: *mut AppIndicator, ordering_index: u32);
    pub fn app_indicator_set_secondary_activate_target(self_: *mut AppIndicator, menuitem: *mut gtk::GtkWidget);
    pub fn app_indicator_set_status(self_: *mut AppIndicator, status: AppIndicatorStatus);
    #[cfg(any(feature = "v0_5", feature = "dox"))]
    #[cfg_attr(feature = "dox", doc(cfg(feature = "v0_5")))]
    pub fn app_indicator_set_title(self_: *mut AppIndicator, title: *const c_char);

}