gboolean gb_player_show_controls (GbPlayer *self) { ClutterEffectTemplate *effect_template; gint x, y; ClutterKnot t_knot[2]; ClutterKnot b_knot[2]; ClutterKnot c_knot[2]; if ((!self->priv->playing) || (clutter_timeline_is_playing (self->priv->show_hide_timeline))) return FALSE; clutter_timeline_start(self->priv->show_hide_timeline); effect_template = clutter_effect_template_new (self->priv->show_hide_timeline, &on_alpha); clutter_actor_get_position (self->priv->title_group, &x, &y); t_knot[0].x = x; t_knot[0].y = y; t_knot[1].x= -20; t_knot[1].y= 20; clutter_actor_get_position (self->priv->window_buttons_group, &x, &y); b_knot[0].x = x; b_knot[0].y = y; b_knot[1].x= 640 - 200; b_knot[1].y= 20; clutter_actor_get_position (self->priv->window_buttons_group, &x, &y); c_knot[0].x = x; c_knot[0].y = y; c_knot[1].x= ((640 / 2) - (400 / 2)); c_knot[1].y= 480 - 70 - 30; clutter_effect_fade (effect_template, self->priv->title_group, 0xff, NULL, NULL); clutter_effect_fade (effect_template, self->priv->window_buttons_group, 0xff, NULL, NULL); clutter_effect_fade (effect_template, self->priv->controls_group, 0xff, NULL, NULL); g_object_unref (effect_template); return FALSE; }
static void astro_appview_init (AstroAppview *appview) { AstroAppviewPrivate *priv; priv = appview->priv = ASTRO_APPVIEW_GET_PRIVATE (appview); priv->active = 0; priv->apps = NULL; priv->move_time = clutter_timeline_new_for_duration (300); priv->move_temp = clutter_effect_template_new (priv->move_time, clutter_sine_inc_func); priv->show_time = clutter_timeline_new_for_duration (600); priv->show_temp = clutter_effect_template_new (priv->show_time, clutter_sine_inc_func); priv->hide_time = clutter_timeline_new_for_duration (300); priv->hide_temp = clutter_effect_template_new (priv->hide_time, clutter_sine_inc_func); }
int main (int argc, char *argv[]) { ClutterActor *stage, *actor; ClutterContainer *container; ClutterColor stage_color = { 0xcc, 0xcc, 0xcc, 0xff }; ClutterColor rect_color = { 0, 0, 0, 0xdd }; clutter_init (&argc, &argv); timeline = clutter_timeline_new_for_duration (5000); clutter_timeline_set_loop (timeline, TRUE); tmpl = clutter_effect_template_new (timeline, CLUTTER_ALPHA_RAMP_INC); stage = clutter_stage_get_default (); container = CLUTTER_CONTAINER (stage); g_signal_connect (stage, "button-press-event", G_CALLBACK (clutter_main_quit), NULL); clutter_stage_set_color (CLUTTER_STAGE (stage), &stage_color); clutter_stage_set_use_fog (CLUTTER_STAGE (stage), TRUE); clutter_actor_set_size (stage, 800, 600); clutter_actor_show_all (stage); actor = clutter_rectangle_new_with_color (&rect_color); clutter_container_add_actor (container, actor); clutter_actor_set_size (actor, 50, 50); clutter_actor_set_position (actor, 50, 10); clutter_effect_fade (tmpl, actor, 0x22, NULL, NULL); clutter_actor_show (actor); actor = clutter_rectangle_new_with_color (&rect_color); clutter_container_add_actor (container, actor); clutter_actor_set_size (actor, 50, 50); clutter_actor_set_position (actor, 750, 70); clutter_effect_depth (tmpl, actor, -500, NULL, NULL); clutter_actor_show (actor); actor = clutter_rectangle_new_with_color (&rect_color); clutter_container_add_actor (container, actor); clutter_actor_set_size (actor, 50, 50); clutter_actor_set_position (actor, 50, 140); clutter_effect_move (tmpl, actor, 750, 140, NULL, NULL); clutter_actor_show (actor); actor = clutter_rectangle_new_with_color (&rect_color); clutter_container_add_actor (container, actor); clutter_actor_set_size (actor, 50, 50); clutter_actor_set_position (actor, 750, 210); { ClutterKnot knots[2]; knots[0].x = 750; knots[0].y = 210; knots[1].x = 350; knots[1].y = 210; clutter_effect_path (tmpl, actor, knots, 2, NULL, NULL); } clutter_actor_show (actor); actor = clutter_rectangle_new_with_color (&rect_color); clutter_container_add_actor (container, actor); clutter_actor_set_size (actor, 50, 50); clutter_actor_set_position (actor, 50, 280); clutter_actor_set_anchor_point_from_gravity (actor, CLUTTER_GRAVITY_CENTER); clutter_effect_scale (tmpl, actor, 2.0, 2.0, NULL, NULL); clutter_actor_show (actor); actor = clutter_rectangle_new_with_color (&rect_color); clutter_container_add_actor (container, actor); clutter_actor_set_size (actor, 50, 50); clutter_actor_set_position (actor, 750, 350); clutter_effect_rotate (tmpl, actor, CLUTTER_Z_AXIS, 180.0, 25, 25, 0, CLUTTER_ROTATE_CW, NULL, NULL); clutter_actor_show (actor); clutter_main (); g_object_unref (tmpl); g_object_unref (timeline); return EXIT_SUCCESS; }
static void astro_contact_row_init (AstroContactRow *row) { AstroContactRowPrivate *priv; ClutterColor white = { 0xff, 0xff, 0xff, 0xff }; gchar *font = NULL; GdkPixbuf *pixbuf; priv = row->priv = ASTRO_CONTACT_ROW_GET_PRIVATE (row); priv->name = NULL; priv->icon = NULL; priv->active = FALSE; /* The background texture */ if (!GDK_IS_PIXBUF (bg_pixbuf)) bg_pixbuf = gdk_pixbuf_new_from_file (PKGDATADIR"/applet_bg.png", NULL); if (!CLUTTER_IS_ACTOR (bg_texture)) { bg_texture = clutter_texture_new_from_pixbuf (bg_pixbuf); clutter_actor_show (bg_texture); } priv->bg = tidy_texture_frame_new (CLUTTER_TEXTURE (bg_texture), 15, 15, 15, 15); clutter_container_add_actor (CLUTTER_CONTAINER (row), priv->bg); clutter_actor_set_position (priv->bg, 0, 0); clutter_actor_set_size (priv->bg, CSW()*0.5, ROW_HEIGHT); clutter_actor_set_opacity (priv->bg, 0); /* The icon */ priv->texture = clutter_texture_new (); clutter_container_add_actor (CLUTTER_CONTAINER (row), priv->texture); clutter_actor_set_position (priv->texture, PADDING, PADDING); clutter_actor_set_size (priv->texture, ICON_SIZE, ICON_SIZE); /* The label */ font = g_strdup_printf ("Sans %d", (gint)(ROW_HEIGHT * 0.3)); priv->label = clutter_label_new_full (font, " ", &white); clutter_label_set_line_wrap (CLUTTER_LABEL (priv->label), FALSE); clutter_actor_set_width (priv->label, CSW()/2); clutter_container_add_actor (CLUTTER_CONTAINER (row), priv->label); clutter_actor_set_position (priv->label, (PADDING*2) + ICON_SIZE, ROW_HEIGHT /2); g_free (font); /* Contact bar */ pixbuf = gdk_pixbuf_new_from_file_at_scale (PKGDATADIR"/contact-bar.svg", -1, ROW_HEIGHT-(PADDING*4), TRUE, NULL); priv->bar = clutter_texture_new_from_pixbuf (pixbuf); clutter_container_add_actor (CLUTTER_CONTAINER (row), priv->bar); clutter_actor_set_position (priv->bar, (PADDING*2) + ICON_SIZE, ROW_HEIGHT + PADDING); clutter_actor_set_opacity (priv->bar, 0); /* Timelines */ priv->active_time = clutter_timeline_new_for_duration (200); priv->active_temp = clutter_effect_template_new (priv->active_time, clutter_sine_inc_func); priv->bar_time = clutter_timeline_new_for_duration (600); priv->bar_temp = clutter_effect_template_new (priv->bar_time, clutter_sine_inc_func); priv->active_time = clutter_timeline_new_for_duration (800); priv->alpha = clutter_alpha_new_full (priv->active_time, clutter_sine_inc_func, NULL, NULL); priv->behave = astro_behave_new (priv->alpha, (AstroBehaveAlphaFunc)_resize_alpha, row); clutter_actor_show_all (CLUTTER_ACTOR (row)); }