static void astro_systray_init (AstroSystray *systray) { AstroSystrayPrivate *priv; GdkPixbuf *pixbuf; ClutterColor white = { 0xff, 0xff, 0xff, 0xff }; gint width; gchar *font; priv = systray->priv = ASTRO_SYSTRAY_GET_PRIVATE (systray); pixbuf = gdk_pixbuf_new_from_file (PKGDATADIR"/icons/bt.png", NULL); if (pixbuf) { priv->bt = clutter_texture_new_from_pixbuf (pixbuf); clutter_container_add_actor (CLUTTER_CONTAINER (systray), priv->bt); clutter_actor_set_anchor_point_from_gravity (priv->bt, CLUTTER_GRAVITY_CENTER); clutter_actor_set_position (priv->bt, 0, ASTRO_PANEL_HEIGHT ()/2); } pixbuf = gdk_pixbuf_new_from_file (PKGDATADIR"/icons/nm.png", NULL); if (pixbuf) { priv->nm = clutter_texture_new_from_pixbuf (pixbuf); clutter_container_add_actor (CLUTTER_CONTAINER (systray), priv->nm); clutter_actor_set_anchor_point_from_gravity (priv->nm, CLUTTER_GRAVITY_WEST); clutter_actor_set_position (priv->nm, clutter_actor_get_width (priv->bt) + PADDING, ASTRO_PANEL_HEIGHT () /2); } width = clutter_actor_get_width (CLUTTER_ACTOR (systray)); /* Time date */ font = g_strdup_printf ("Sans %d", (int)(ASTRO_PANEL_HEIGHT () * 0.2)); priv->time = clutter_label_new_full (font, " ", &white); clutter_label_set_line_wrap (CLUTTER_LABEL (priv->time), FALSE); clutter_container_add_actor (CLUTTER_CONTAINER (systray), priv->time); clutter_actor_set_anchor_point_from_gravity (priv->time,CLUTTER_GRAVITY_WEST); set_time (systray); clutter_actor_set_position (priv->time, width + PADDING, ASTRO_PANEL_HEIGHT ()/2); g_timeout_add (1000, (GSourceFunc)set_time, systray); g_free (font); clutter_actor_show_all (CLUTTER_ACTOR (systray)); }
static void astro_texture_group_init (AstroTextureGroup *group) { AstroTextureGroupPrivate *priv; ClutterColor white = { 0xff, 0xff, 0xff, 0xff }; gchar *font = NULL; priv = group->priv = ASTRO_TEXTURE_GROUP_GET_PRIVATE (group); /* The background texture */ if (!GDK_IS_PIXBUF (bg_pixbuf)) bg_pixbuf = gdk_pixbuf_new_from_file (PKGDATADIR"/info_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 (group), priv->bg); clutter_actor_set_position (priv->bg, 0, 0); clutter_actor_set_size (priv->bg, GROUP_WIDTH, GROUP_HEIGHT); /* The label */ font = g_strdup_printf ("Sans %d", (gint)(GROUP_HEIGHT * 0.3)); priv->label = clutter_label_new_full (font, " ", &white); clutter_label_set_line_wrap (CLUTTER_LABEL (priv->label), TRUE); clutter_actor_set_width (priv->label, GROUP_WIDTH); clutter_container_add_actor (CLUTTER_CONTAINER (group), priv->label); clutter_actor_set_position (priv->label, PADDING, GROUP_HEIGHT /2); g_free (font); clutter_actor_show_all (CLUTTER_ACTOR (group)); }
static void _gb_player_setup_widgets (GbPlayer *self) { GbPlayerPrivate *p = GB_PLAYER_GET_PRIVATE(self); ClutterColor cc_white = {0xff, 0xff, 0xff, 0x8f}; ClutterColor cc_black = {0x00, 0x00, 0x00, 0xff}; /* title group */ p->title_group = clutter_group_new (); p->title_rect = gb_player_rounded_rect (self, 400, 36, &cc_white, 35); p->title_label = clutter_label_new_full ("DejaVu Sans", "<span size='11500'><b>Here comes the media's title</b></span>", &cc_black); clutter_label_set_use_markup (CLUTTER_LABEL(p->title_label), TRUE); clutter_actor_set_position (p->title_group, -20, 20); clutter_actor_set_position (p->title_label, 50, 10); CLUTTER_GROUP_AND_SHOW(p->title_group, p->title_rect); CLUTTER_GROUP_AND_SHOW(p->title_group, p->title_label); /* window buttons group */ p->window_buttons_group = clutter_group_new (); p->window_buttons_rect = gb_player_rounded_rect (self, 230, 90, &cc_white, 35); p->window_aspect_button = clutter_texture_new_from_pixbuf (p->fullscreen); p->window_open_file_button = clutter_texture_new_from_pixbuf (p->open_file); clutter_label_set_use_markup (CLUTTER_LABEL(p->title_label), TRUE); CLUTTER_GROUP_AND_SHOW(p->window_buttons_group, p->window_buttons_rect); CLUTTER_GROUP_AND_SHOW(p->window_buttons_group, p->window_aspect_button); CLUTTER_GROUP_AND_SHOW(p->window_buttons_group, p->window_open_file_button); clutter_actor_set_position (p->window_buttons_group, 640 - 200, 20); clutter_actor_set_position (p->window_open_file_button, 40, 20); clutter_actor_set_position (p->window_aspect_button, 130, 20); /* background group*/ p->bg_group = clutter_group_new (); p->bg_video = clutter_gst_video_texture_new (); p->bg_image = clutter_texture_new_from_pixbuf (p->bgpixbuf); p->bg_logo = clutter_texture_new_from_pixbuf (p->bglogo); CLUTTER_GROUP_AND_SHOW(p->bg_group, p->bg_image); CLUTTER_GROUP_AND_SHOW(p->bg_group, p->bg_logo); CLUTTER_GROUP_AND_SHOW(p->bg_group, p->bg_video); clutter_actor_set_position (p->bg_logo, (640 / 2) - (467 / 2), (480 / 2) - (210 / 2)); clutter_actor_set_size (p->bg_video, 640, 480); /* controls group */ p->controls_group = clutter_group_new (); p->controls_rect = gb_player_rounded_rect (self, 400, 70, &cc_white, 45); p->controls_backward = clutter_texture_new_from_pixbuf (p->backward); p->controls_forward = clutter_texture_new_from_pixbuf (p->forward); p->controls_play_pause = clutter_texture_new_from_pixbuf (p->play); p->controls_stop = clutter_texture_new_from_pixbuf (p->stop); CLUTTER_GROUP_AND_SHOW(p->controls_group, p->controls_rect); CLUTTER_GROUP_AND_SHOW(p->controls_group, p->controls_backward); CLUTTER_GROUP_AND_SHOW(p->controls_group, p->controls_forward); CLUTTER_GROUP_AND_SHOW(p->controls_group, p->controls_play_pause); clutter_actor_set_position (p->controls_group, (640 / 2) - (400 / 2), 480 - 70 - 30); clutter_actor_set_position (p->controls_backward, 30, 15); clutter_actor_set_position (p->controls_play_pause, 170, 5); clutter_actor_set_position (p->controls_forward, 300, 15); CLUTTER_GROUP_AND_SHOW(p->stage, p->bg_group); CLUTTER_GROUP_AND_SHOW(p->stage, p->title_group); CLUTTER_GROUP_AND_SHOW(p->stage, p->controls_group); CLUTTER_GROUP_AND_SHOW(p->stage, p->window_buttons_group); gtk_widget_show_all (p->window); clutter_actor_set_reactive (p->controls_backward, TRUE); clutter_actor_set_reactive (p->controls_forward, TRUE); clutter_actor_set_reactive (p->controls_play_pause, TRUE); clutter_actor_set_reactive (p->window_aspect_button, TRUE); clutter_actor_set_reactive (p->window_open_file_button, TRUE); clutter_actor_set_reactive (p->stage, TRUE); clutter_actor_hide (p->bg_video); p->videosink = clutter_gst_video_sink_new (CLUTTER_TEXTURE(p->bg_video)); g_object_set (p->player, "video-sink", p->videosink, NULL); }
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)); }
HandCar * handcar_new() { HandCar *all = g_new0(HandCar, 1); ClutterColor rect_color = { 0xdd, 0xdd, 0xdd, 0xee }; ClutterColor rect_border_color = { 0xee, 0xee, 0xee, 0xdd }; ClutterColor rect_entry_color = { 0xef, 0xef, 0xef, 0xee }; ClutterColor rect_entry_border_color = { 0x96, 0x96, 0x96, 0xaa }; ClutterColor label_color = { 0x55, 0x00, 0x00, 0xff }; ClutterColor time_color = { 0x00, 0x33, 0x55, 0xbb }; GError *error = NULL; all->play = gdk_pixbuf_new_from_file("imgs/start.svg", NULL); all->previous = gdk_pixbuf_new_from_file("imgs/backward.svg", NULL); all->next = gdk_pixbuf_new_from_file("imgs/forward.svg", NULL); all->stop = gdk_pixbuf_new_from_file("imgs/stop.svg", NULL); all->time = 0; all->playing = FALSE; all->player = gst_element_factory_make ("playbin", "player"); if (error) g_error ("FUDEU: %s", error->message); all->label_actor = clutter_label_new_full("DejaVu Sans", "Blind Guardian - <b>Mirror Mirror</b>", &label_color); clutter_label_set_use_markup (CLUTTER_LABEL(all->label_actor), TRUE); all->label_time = clutter_label_new_full("DejaVu Sans", "00:00", &time_color); clutter_label_set_use_markup (CLUTTER_LABEL(all->label_time), TRUE); clutter_actor_set_position (all->label_actor, 10, 15); clutter_actor_set_position (all->label_time, STAGE_WIDTH - 80, STAGE_HEIGHT - 20); all->btn_actor_play = clutter_texture_new_from_pixbuf (all->play); all->btn_actor_next = clutter_texture_new_from_pixbuf (all->next); all->btn_actor_previous = clutter_texture_new_from_pixbuf (all->previous); clutter_actor_set_position (all->btn_actor_previous, 60, 50); clutter_actor_set_position (all->btn_actor_play, 140, 50); clutter_actor_set_position (all->btn_actor_next, 200, 50); all->rect1 = clutter_rectangle_new_with_color (&rect_color); clutter_actor_set_size (all->rect1, 320, 30); clutter_actor_set_position (all->rect1, -5, 10); clutter_rectangle_set_border_width (CLUTTER_RECTANGLE(all->rect1), 4); clutter_rectangle_set_border_color (CLUTTER_RECTANGLE(all->rect1), &rect_border_color); all->rect2 = clutter_rectangle_new_with_color (&rect_entry_color); clutter_actor_set_size (all->rect2, 270, 20); clutter_actor_set_position (all->rect2, 20, STAGE_HEIGHT - 50); clutter_rectangle_set_border_width (CLUTTER_RECTANGLE(all->rect2), 1); clutter_rectangle_set_border_color (CLUTTER_RECTANGLE(all->rect2), &rect_entry_border_color); all->rect3 = clutter_rectangle_new_with_color (&rect_entry_color); clutter_actor_set_size (all->rect3, 270, 203); clutter_actor_set_position (all->rect3, 20, 120); clutter_rectangle_set_border_width (CLUTTER_RECTANGLE(all->rect3), 1); clutter_rectangle_set_border_color (CLUTTER_RECTANGLE(all->rect3), &rect_entry_border_color); all->entry_actor = clutter_entry_new_full ("Monospace", "Teste", &label_color); clutter_actor_set_size (all->entry_actor, 270, 20); clutter_actor_set_position (all->entry_actor, 20, STAGE_HEIGHT - 50); all->video = clutter_gst_video_texture_new (); clutter_actor_set_size (all->video, 270, 203); clutter_actor_set_position (all->video, 20, 120); clutter_actor_set_opacity (all->video, 0xff); // all->clutter_group_add_many (all->container1, all->rect1); all->videosink = clutter_gst_video_sink_new (CLUTTER_TEXTURE(all->video)); g_object_set (all->player, "video-sink", all->videosink, NULL); all->format = GST_FORMAT_TIME; clutter_actor_show(all->btn_actor_play); clutter_actor_show(all->btn_actor_next); clutter_actor_show(all->btn_actor_previous); clutter_actor_show(all->label_actor); clutter_actor_show(all->label_time); clutter_actor_show(all->rect1); clutter_actor_show(all->rect2); clutter_actor_show(all->rect3); clutter_actor_show(all->video); clutter_actor_show(all->entry_actor); return all; }