static void
clutter_behaviour_opacity_set_property (GObject      *gobject,
                                        guint         prop_id,
                                        const GValue *value,
                                        GParamSpec   *pspec)
{
  ClutterBehaviourOpacity *self = CLUTTER_BEHAVIOUR_OPACITY (gobject);

  switch (prop_id)
    {
    case PROP_OPACITY_START:
      clutter_behaviour_opacity_set_bounds (self,
                                            g_value_get_uint (value),
                                            self->priv->opacity_end);
      break;

    case PROP_OPACITY_END:
      clutter_behaviour_opacity_set_bounds (self,
                                            self->priv->opacity_start,
                                            g_value_get_uint (value));
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
      break;
    }
}
예제 #2
0
static VALUE
rbclt_behaviour_opacity_get_bounds (VALUE self)
{
  ClutterBehaviourOpacity *behaviour
    = CLUTTER_BEHAVIOUR_OPACITY (RVAL2GOBJ (self));
  guint8 opacity_start, opacity_end;

  clutter_behaviour_opacity_get_bounds (behaviour,
                                        &opacity_start, &opacity_end);

  return rb_ary_new3 (2, INT2NUM (opacity_start), INT2NUM (opacity_end));
}
예제 #3
0
static VALUE
rbclt_behaviour_opacity_set_bounds (VALUE self,
                                    VALUE opacity_start,
                                    VALUE opacity_end)
{
  ClutterBehaviourOpacity *behaviour
    = CLUTTER_BEHAVIOUR_OPACITY (RVAL2GOBJ (self));

  clutter_behaviour_opacity_set_bounds (behaviour,
                                        rbclt_num_to_guint8 (opacity_start),
                                        rbclt_num_to_guint8 (opacity_end));

  return self;
}
static void
clutter_behaviour_alpha_notify (ClutterBehaviour *behave,
                                gdouble           alpha_value)
{
  ClutterBehaviourOpacityPrivate *priv;
  guint8 opacity;

  priv = CLUTTER_BEHAVIOUR_OPACITY (behave)->priv;

  opacity = alpha_value
            * (priv->opacity_end - priv->opacity_start)
            + priv->opacity_start;

  CLUTTER_NOTE (BEHAVIOUR, "alpha: %.4f, opacity: %u",
                alpha_value,
                opacity);

  clutter_behaviour_actors_foreach (behave,
				    alpha_notify_foreach,
				    GUINT_TO_POINTER ((guint) opacity));
}