// This file was generated by gir (https://github.com/gtk-rs/gir)
// from 
// from ../gir-files-gstreamer
// from ../gir-files-gtk
// from ../libclapper-rs
// DO NOT EDIT

use crate::{ffi,Container};
use glib::{prelude::*,translate::*};

glib::wrapper! {
    #[doc(alias = "ClapperGtkBillboard")]
    pub struct Billboard(Object<ffi::ClapperGtkBillboard, ffi::ClapperGtkBillboardClass>) @extends Container, gtk::Widget, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget;

    match fn {
        type_ => || ffi::clapper_gtk_billboard_get_type(),
    }
}

impl Billboard {
    #[doc(alias = "clapper_gtk_billboard_new")]
    pub fn new() -> Billboard {
        assert_initialized_main_thread!();
        unsafe {
            gtk::Widget::from_glib_none(ffi::clapper_gtk_billboard_new()).unsafe_cast()
        }
    }

    #[doc(alias = "clapper_gtk_billboard_announce_speed")]
    pub fn announce_speed(&self) {
        unsafe {
            ffi::clapper_gtk_billboard_announce_speed(self.to_glib_none().0);
        }
    }

    #[doc(alias = "clapper_gtk_billboard_announce_volume")]
    pub fn announce_volume(&self) {
        unsafe {
            ffi::clapper_gtk_billboard_announce_volume(self.to_glib_none().0);
        }
    }

    #[doc(alias = "clapper_gtk_billboard_pin_message")]
    pub fn pin_message(&self, icon_name: &str, message: &str) {
        unsafe {
            ffi::clapper_gtk_billboard_pin_message(self.to_glib_none().0, icon_name.to_glib_none().0, message.to_glib_none().0);
        }
    }

    #[doc(alias = "clapper_gtk_billboard_post_message")]
    pub fn post_message(&self, icon_name: &str, message: &str) {
        unsafe {
            ffi::clapper_gtk_billboard_post_message(self.to_glib_none().0, icon_name.to_glib_none().0, message.to_glib_none().0);
        }
    }

    #[doc(alias = "clapper_gtk_billboard_unpin_pinned_message")]
    pub fn unpin_pinned_message(&self) {
        unsafe {
            ffi::clapper_gtk_billboard_unpin_pinned_message(self.to_glib_none().0);
        }
    }
}

impl Default for Billboard {
                     fn default() -> Self {
                         Self::new()
                     }
                 }
