use ffi;
use glib::translate::*;
#[allow(raw_pointer_derive)]
#[derive(Copy, Clone, PartialEq, Eq)]
pub struct Atom(ffi::GdkAtom);
pub const NONE: Atom = Atom(0 as *mut _);
impl Atom {
pub fn intern(atom_name: &str) -> Atom {
unsafe { Atom(ffi::gdk_atom_intern(atom_name.to_glib_none().0, false.to_glib())) }
}
pub fn name(&self) -> String {
unsafe { from_glib_full(ffi::gdk_atom_name(self.0)) }
}
}
impl<'a> ToGlibPtr<'a, ffi::GdkAtom> for Atom {
type Storage = ();
#[inline]
fn to_glib_none(&self) -> Stash<'a, ffi::GdkAtom, Atom> {
Stash(self.0, ())
}
}
impl FromGlibPtr<ffi::GdkAtom> for Atom {
#[inline]
unsafe fn from_glib_none(ptr: ffi::GdkAtom) -> Atom { Atom(ptr) }
#[inline]
unsafe fn from_glib_full(_: ffi::GdkAtom) -> Atom { unimplemented!() }
}