394
394
g_clear_error (&_inner_error_);
397
self->priv->processed_icon = (_tmp6_ = g_object_ref_sink (unity_unity_icon_new (NULL, NULL)), _g_object_unref0 (self->priv->processed_icon), _tmp6_);
398
clutter_actor_set_size ((ClutterActor*) self->priv->processed_icon, (float) 48, (float) 48);
399
clutter_actor_set_parent ((ClutterActor*) self->priv->processed_icon, (ClutterActor*) self);
397
self->processed_icon = (_tmp6_ = g_object_ref_sink (unity_unity_icon_new (NULL, NULL)), _g_object_unref0 (self->processed_icon), _tmp6_);
398
clutter_actor_set_size ((ClutterActor*) self->processed_icon, (float) 48, (float) 48);
399
clutter_actor_set_parent ((ClutterActor*) self->processed_icon, (ClutterActor*) self);
400
400
g_signal_connect_object ((GObject*) self, "notify::icon", (GCallback) _unity_launcher_scroller_child_on_icon_changed_g_object_notify, self, 0);
401
401
g_signal_connect_object ((GObject*) self, "notify::running", (GCallback) _unity_launcher_scroller_child_on_running_changed_g_object_notify, self, 0);
402
402
g_signal_connect_object ((GObject*) self, "notify::active", (GCallback) _unity_launcher_scroller_child_on_active_changed_g_object_notify, self, 0);
495
495
if (self->priv->_is_dragging_state) {
498
if (CLUTTER_IS_ANIMATION (clutter_actor_get_animation ((ClutterActor*) self->priv->processed_icon))) {
499
clutter_animation_completed (clutter_actor_get_animation ((ClutterActor*) self->priv->processed_icon));
498
if (CLUTTER_IS_ANIMATION (clutter_actor_get_animation ((ClutterActor*) self->processed_icon))) {
499
clutter_animation_completed (clutter_actor_get_animation ((ClutterActor*) self->processed_icon));
501
unity_unity_icon_set_rotation (self->priv->processed_icon, degrees);
501
unity_unity_icon_set_rotation (self->processed_icon, degrees);
502
502
unity_launcher_scroller_child_set_rotation (self, degrees);
503
503
clutter_actor_queue_redraw ((ClutterActor*) self);
603
clutter_actor_queue_redraw ((ClutterActor*) self->priv->processed_icon);
603
clutter_actor_queue_redraw ((ClutterActor*) self->processed_icon);
607
607
static void unity_launcher_scroller_child_wiggle_anim_rising (UnityLauncherScrollerChild* self, float progress) {
608
608
g_return_if_fail (self != NULL);
609
609
progress = unity_launcher_scroller_child_get_ease_out_sine (progress);
610
clutter_actor_set_rotation ((ClutterActor*) self->priv->processed_icon, CLUTTER_Z_AXIS, (double) (progress * UNITY_LAUNCHER_WIGGLE_SIZE), 25.0f, 25.0f, 0.0f);
610
clutter_actor_set_rotation ((ClutterActor*) self->processed_icon, CLUTTER_Z_AXIS, (double) (progress * UNITY_LAUNCHER_WIGGLE_SIZE), 25.0f, 25.0f, 0.0f);
611
611
self->priv->previous_wiggle_alpha = progress;
612
612
if (progress >= 1.0) {
613
613
self->priv->wiggle_state = UNITY_LAUNCHER_ANIM_STATE_LOOPING;
632
632
frequency = UNITY_LAUNCHER_WIGGLE_FREQUENCY * (UNITY_LAUNCHER_WIGGLE_RUN_LENGTH / 1000);
633
633
progress = unity_launcher_scroller_child_get_circular_alpha (fmodf (progress * frequency, 1.0f));
634
634
progress = ((1.0f - progress) * 2.0f) - 1.0f;
635
clutter_actor_set_rotation ((ClutterActor*) self->priv->processed_icon, CLUTTER_Z_AXIS, (double) (progress * UNITY_LAUNCHER_WIGGLE_SIZE), 25.0f, 25.0f, 0.0f);
636
clutter_actor_queue_redraw ((ClutterActor*) self->priv->processed_icon);
635
clutter_actor_set_rotation ((ClutterActor*) self->processed_icon, CLUTTER_Z_AXIS, (double) (progress * UNITY_LAUNCHER_WIGGLE_SIZE), 25.0f, 25.0f, 0.0f);
636
clutter_actor_queue_redraw ((ClutterActor*) self->processed_icon);
637
637
self->priv->previous_wiggle_alpha = progress;
671
671
g_return_if_fail (self != NULL);
672
672
alpha_length = self->priv->previous_wiggle_alpha;
673
673
angle = alpha_length - (progress * alpha_length);
674
clutter_actor_set_rotation ((ClutterActor*) self->priv->processed_icon, CLUTTER_Z_AXIS, (double) angle, 25.0f, 25.0f, 0.0f);
674
clutter_actor_set_rotation ((ClutterActor*) self->processed_icon, CLUTTER_Z_AXIS, (double) angle, 25.0f, 25.0f, 0.0f);
675
675
if (progress >= 1.0) {
676
676
self->priv->wiggle_state = UNITY_LAUNCHER_ANIM_STATE_STOPPED;
677
677
clutter_timeline_stop (self->priv->wiggle_timeline);
727
727
pixels[3] = (guchar) 255;
728
728
tex = _g_object_ref0 (gtk_clutter_texture_new_from_pixbuf (scaled_buf));
729
729
color = _g_object_ref0 (gtk_clutter_texture_new_from_pixbuf (color_buf));
730
self->priv->processed_icon = (_tmp6_ = g_object_ref_sink (unity_unity_icon_new ((_tmp4_ = tex, CLUTTER_IS_TEXTURE (_tmp4_) ? ((ClutterTexture*) _tmp4_) : NULL), (_tmp5_ = color, CLUTTER_IS_TEXTURE (_tmp5_) ? ((ClutterTexture*) _tmp5_) : NULL))), _g_object_unref0 (self->priv->processed_icon), _tmp6_);
731
clutter_actor_set_parent ((ClutterActor*) self->priv->processed_icon, (ClutterActor*) self);
732
unity_unity_icon_set_rotation (self->priv->processed_icon, self->priv->_rotation);
730
self->processed_icon = (_tmp6_ = g_object_ref_sink (unity_unity_icon_new ((_tmp4_ = tex, CLUTTER_IS_TEXTURE (_tmp4_) ? ((ClutterTexture*) _tmp4_) : NULL), (_tmp5_ = color, CLUTTER_IS_TEXTURE (_tmp5_) ? ((ClutterTexture*) _tmp5_) : NULL))), _g_object_unref0 (self->processed_icon), _tmp6_);
731
clutter_actor_set_parent ((ClutterActor*) self->processed_icon, (ClutterActor*) self);
732
unity_unity_icon_set_rotation (self->processed_icon, self->priv->_rotation);
733
733
self->priv->effect_drop_shadow = (_tmp7_ = g_object_ref_sink (ctk_effect_drop_shadow_new (5.0f, 0, 2)), _g_object_unref0 (self->priv->effect_drop_shadow), _tmp7_);
734
734
ctk_effect_set_opacity ((CtkEffect*) self->priv->effect_drop_shadow, 0.4f);
735
735
ctk_effect_set_margin ((CtkEffect*) self->priv->effect_drop_shadow, 5);
736
ctk_actor_add_effect ((CtkActor*) self->priv->processed_icon, (CtkEffect*) self->priv->effect_drop_shadow);
736
ctk_actor_add_effect ((CtkActor*) self->processed_icon, (CtkEffect*) self->priv->effect_drop_shadow);
737
clutter_actor_set_scale ((ClutterActor*) self->processed_icon, (double) 0.0f, (double) 0.0f);
738
g_object_set ((ClutterActor*) self->processed_icon, "scale-gravity", CLUTTER_GRAVITY_CENTER, NULL);
739
clutter_actor_animate ((ClutterActor*) self->processed_icon, (gulong) CLUTTER_EASE_OUT_CUBIC, (guint) 300, "scale-x", 1.0, "scale-y", 1.0, NULL);
737
740
clutter_actor_queue_redraw ((ClutterActor*) self);
738
741
_g_object_unref0 (color);
739
742
_g_object_unref0 (tex);
761
764
static void unity_launcher_scroller_child_on_active_changed (UnityLauncherScrollerChild* self) {
762
765
guint target_opacity;
763
ClutterAnimation* _tmp0_;
766
gboolean _tmp0_ = FALSE;
767
ClutterAnimation* _tmp1_;
764
768
g_return_if_fail (self != NULL);
765
769
target_opacity = (guint) 0;
766
770
if (self->priv->_active) {
767
771
target_opacity = (guint) 255;
773
if (self->priv->_active) {
774
_tmp0_ = self->priv->_running;
768
779
clutter_actor_animate ((ClutterActor*) self->priv->running_indicator_notify, (gulong) CLUTTER_EASE_IN_QUAD, (guint) 150, "opacity", 0x00, NULL);
769
780
clutter_actor_animate ((ClutterActor*) self->priv->running_indicator, (gulong) CLUTTER_EASE_IN_QUAD, (guint) 150, "opacity", 0xff, NULL);
771
782
if (CLUTTER_IS_ANIMATION (self->priv->active_indicator_anim)) {
772
783
clutter_animation_completed (self->priv->active_indicator_anim);
774
self->priv->active_indicator_anim = (_tmp0_ = _g_object_ref0 (clutter_actor_animate ((ClutterActor*) self->priv->active_indicator, (gulong) CLUTTER_EASE_IN_OUT_SINE, UNITY_LAUNCHER_SHORT_DELAY, "opacity", target_opacity, NULL)), _g_object_unref0 (self->priv->active_indicator_anim), _tmp0_);
785
self->priv->active_indicator_anim = (_tmp1_ = _g_object_ref0 (clutter_actor_animate ((ClutterActor*) self->priv->active_indicator, (gulong) CLUTTER_EASE_IN_OUT_SINE, UNITY_LAUNCHER_SHORT_DELAY, "opacity", target_opacity, NULL)), _g_object_unref0 (self->priv->active_indicator_anim), _tmp1_);
781
792
if (self->priv->_is_dragging_state) {
784
self->priv->old_rotate_value = unity_unity_icon_get_rotation (self->priv->processed_icon);
785
if (CLUTTER_IS_ANIMATION (clutter_actor_get_animation ((ClutterActor*) self->priv->processed_icon))) {
786
clutter_animation_completed (clutter_actor_get_animation ((ClutterActor*) self->priv->processed_icon));
795
self->priv->old_rotate_value = unity_unity_icon_get_rotation (self->processed_icon);
796
if (CLUTTER_IS_ANIMATION (clutter_actor_get_animation ((ClutterActor*) self->processed_icon))) {
797
clutter_animation_completed (clutter_actor_get_animation ((ClutterActor*) self->processed_icon));
788
unity_unity_icon_set_rotation (self->priv->processed_icon, self->priv->old_rotate_value);
799
unity_unity_icon_set_rotation (self->processed_icon, self->priv->old_rotate_value);
789
800
if (self->priv->_rotation <= 1.0) {
790
801
_tmp0_ = self->priv->_rotation >= 0.0;
795
clutter_actor_animate ((ClutterActor*) self->priv->processed_icon, (gulong) CLUTTER_EASE_IN_OUT_QUAD, (guint) 300, "rotation", self->priv->_rotation, NULL);
806
clutter_actor_animate ((ClutterActor*) self->processed_icon, (gulong) CLUTTER_EASE_IN_OUT_QUAD, (guint) 300, "rotation", self->priv->_rotation, NULL);
797
clutter_actor_animate ((ClutterActor*) self->priv->processed_icon, (gulong) CLUTTER_EASE_OUT_QUINT, (guint) 300, "rotation", self->priv->_rotation, NULL);
808
clutter_actor_animate ((ClutterActor*) self->processed_icon, (gulong) CLUTTER_EASE_OUT_QUINT, (guint) 300, "rotation", self->priv->_rotation, NULL);
827
838
c = (memset (&_tmp3_, 0, sizeof (ClutterColor)), _tmp3_.red = (guint8) 255, _tmp3_.green = (guint8) 255, _tmp3_.blue = (guint8) 255, _tmp3_.alpha = (guint8) 255, _tmp3_);
828
839
ctk_effect_glow_set_color (self->priv->effect_icon_glow, &c);
829
840
ctk_effect_set_opacity ((CtkEffect*) self->priv->effect_icon_glow, 1.0f);
830
ctk_actor_add_effect ((CtkActor*) self->priv->processed_icon, (CtkEffect*) self->priv->effect_icon_glow);
841
ctk_actor_add_effect ((CtkActor*) self->processed_icon, (CtkEffect*) self->priv->effect_icon_glow);
831
842
ctk_effect_set_margin ((CtkEffect*) self->priv->effect_icon_glow, 6);
832
843
clutter_timeline_set_duration (self->priv->glow_timeline, UNITY_LAUNCHER_SHORT_DELAY);
833
844
self->priv->glow_state = UNITY_LAUNCHER_ANIM_STATE_RISING;
876
887
float nat = 0.0F;
877
888
float min = 0.0F;
878
889
self = (UnityLauncherScrollerChild*) base;
879
clutter_actor_get_preferred_width ((ClutterActor*) self->priv->processed_icon, for_height, &min, &nat);
890
clutter_actor_get_preferred_width ((ClutterActor*) self->processed_icon, for_height, &min, &nat);
880
891
*natural_width = nat;
881
892
*minimum_width = min;
882
893
clutter_actor_get_preferred_width ((ClutterActor*) self->priv->running_indicator, for_height, &min, &nat);
909
921
CLUTTER_ACTOR_CLASS (unity_launcher_scroller_child_parent_class)->allocate ((ClutterActor*) CTK_ACTOR (self), box, flags);
910
922
memset (&child_box, 0, sizeof (ClutterActorBox));
923
midpoint = (float) 0;
911
924
clutter_actor_get_preferred_width ((ClutterActor*) self->priv->running_indicator, (float) 58, &n_width, &width);
912
925
clutter_actor_get_preferred_height ((ClutterActor*) self->priv->running_indicator, (float) 58, &n_height, &height);
926
midpoint = (self->processed_icon->stored_height - height) / 2.0f;
927
if (self->priv->_rotation > 0) {
928
midpoint = (clutter_actor_box_get_height (box) - midpoint) - self->processed_icon->stored_ymod;
913
930
child_box.x1 = (float) 0;
914
child_box.y1 = (clutter_actor_box_get_height (box) - height) / 2.0f;
931
child_box.y1 = midpoint;
915
932
child_box.x2 = child_box.x1 + width;
916
933
child_box.y2 = child_box.y1 + height;
917
934
clutter_actor_allocate ((ClutterActor*) self->priv->running_indicator, &child_box, flags);
918
935
clutter_actor_allocate ((ClutterActor*) self->priv->running_indicator_notify, &child_box, flags);
919
936
x = x + clutter_actor_box_get_width (&child_box);
920
clutter_actor_get_preferred_width ((ClutterActor*) self->priv->processed_icon, (float) 48, &width, &n_width);
921
clutter_actor_get_preferred_height ((ClutterActor*) self->priv->processed_icon, (float) 48, &height, &n_height);
937
clutter_actor_get_preferred_width ((ClutterActor*) self->processed_icon, (float) 48, &width, &n_width);
938
clutter_actor_get_preferred_height ((ClutterActor*) self->processed_icon, (float) 48, &height, &n_height);
922
939
child_box.x1 = self->grabbed_push + ((clutter_actor_box_get_width (box) - width) / 2.0f);
940
child_box.y1 = (float) 0;
924
941
child_box.x2 = child_box.x1 + 48;
925
942
child_box.y2 = child_box.y1 + height;
926
clutter_actor_allocate ((ClutterActor*) self->priv->processed_icon, &child_box, flags);
943
clutter_actor_allocate ((ClutterActor*) self->processed_icon, &child_box, flags);
927
944
clutter_actor_get_preferred_width ((ClutterActor*) self->priv->active_indicator, (float) 48, &n_width, &width);
928
945
clutter_actor_get_preferred_height ((ClutterActor*) self->priv->active_indicator, (float) 48, &n_height, &height);
946
midpoint = (self->processed_icon->stored_height - height) / 2.0f;
947
if (self->priv->_rotation > 0) {
948
midpoint = (clutter_actor_box_get_height (box) - midpoint) - self->processed_icon->stored_ymod;
929
950
child_box.x1 = clutter_actor_box_get_width (box) - width;
930
child_box.y1 = (clutter_actor_box_get_height (box) - height) / 2.0f;
951
child_box.y1 = midpoint;
931
952
child_box.x2 = child_box.x1 + width;
932
953
child_box.y2 = child_box.y1 + height;
933
954
clutter_actor_allocate ((ClutterActor*) self->priv->active_indicator, &child_box, flags);