use crate::{ffi, AnimationTarget};
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "AdwPropertyAnimationTarget")]
pub struct PropertyAnimationTarget(Object<ffi::AdwPropertyAnimationTarget, ffi::AdwPropertyAnimationTargetClass>) @extends AnimationTarget;
match fn {
type_ => || ffi::adw_property_animation_target_get_type(),
}
}
impl PropertyAnimationTarget {
#[doc(alias = "adw_property_animation_target_new")]
pub fn new(object: &impl IsA<glib::Object>, property_name: &str) -> PropertyAnimationTarget {
assert_initialized_main_thread!();
unsafe {
AnimationTarget::from_glib_full(ffi::adw_property_animation_target_new(
object.as_ref().to_glib_none().0,
property_name.to_glib_none().0,
))
.unsafe_cast()
}
}
#[doc(alias = "adw_property_animation_target_new_for_pspec")]
#[doc(alias = "new_for_pspec")]
pub fn for_pspec(
object: &impl IsA<glib::Object>,
pspec: impl AsRef<glib::ParamSpec>,
) -> PropertyAnimationTarget {
assert_initialized_main_thread!();
unsafe {
AnimationTarget::from_glib_full(ffi::adw_property_animation_target_new_for_pspec(
object.as_ref().to_glib_none().0,
pspec.as_ref().to_glib_none().0,
))
.unsafe_cast()
}
}
#[doc(alias = "adw_property_animation_target_get_object")]
#[doc(alias = "get_object")]
pub fn object(&self) -> glib::Object {
unsafe {
from_glib_none(ffi::adw_property_animation_target_get_object(
self.to_glib_none().0,
))
}
}
#[doc(alias = "adw_property_animation_target_get_pspec")]
#[doc(alias = "get_pspec")]
pub fn pspec(&self) -> glib::ParamSpec {
unsafe {
from_glib_none(ffi::adw_property_animation_target_get_pspec(
self.to_glib_none().0,
))
}
}
}