Exemple #1
0
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));
}
Exemple #2
0
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));
}
Exemple #3
0
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);
	


}
Exemple #4
0
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));
}
Exemple #5
0
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;
}