Example #1
0
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);
 }
Example #2
0
static GObject *
gb_player_constructor (GType type, guint n_construct_properties,
                       GObjectConstructParam *construct_properties)
{
	GObject * obj;
	GbPlayerClass * klass;
	GObjectClass * parent_class;
	GbPlayer * self;

	klass = GB_PLAYER_CLASS (g_type_class_peek (GB_TYPE_PLAYER));
	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = GB_PLAYER (obj);

	GbPlayerPrivate *p = GB_PLAYER_GET_PRIVATE(self);

	p->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	p->stage_widget = gtk_clutter_embed_new ();
	gtk_widget_set_size_request (p->stage_widget, 640, 480);
	g_signal_connect (p->window, "delete-event",
					  G_CALLBACK(gtk_main_quit), NULL);
	p->filechooser = gtk_file_chooser_dialog_new ("Choose the media file", 
												  GTK_WINDOW(p->window),
												  GTK_FILE_CHOOSER_ACTION_OPEN,
												  GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
												  GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
												  NULL);

	gtk_container_add (GTK_CONTAINER(p->window), p->stage_widget);
	p->stage = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED(p->stage_widget));
	p->play = gdk_pixbuf_new_from_file(IMG_PATH "/start.svg", NULL);
	p->backward = gdk_pixbuf_new_from_file(IMG_PATH "/backward.svg", NULL);
	p->forward = gdk_pixbuf_new_from_file(IMG_PATH "/forward.svg", NULL);
	p->stop = gdk_pixbuf_new_from_file(IMG_PATH "/stop.svg", NULL);
	p->pause = gdk_pixbuf_new_from_file(IMG_PATH "/pause.svg", NULL);
	p->fullscreen = gdk_pixbuf_new_from_file(IMG_PATH "/fullscreen.svg", NULL);
	p->unfullscreen = gdk_pixbuf_new_from_file(IMG_PATH "/unfullscreen.svg", NULL);
	p->open_file = gdk_pixbuf_new_from_file(IMG_PATH "/openfile.svg", NULL);
	p->bgpixbuf = gdk_pixbuf_new_from_file(IMG_PATH "/background.svg", NULL);
	p->bglogo = gdk_pixbuf_new_from_file(IMG_PATH "/logo.svg", NULL);
	p->time = 0;
	p->controls_visible = TRUE;
	p->last_second = -1;
	p->filename = NULL;
	p->playing = FALSE;
	p->player = gst_element_factory_make ("playbin", "player");



	p->show_hide_timeline = clutter_timeline_new_for_duration (1000);
	g_signal_connect(p->show_hide_timeline, "completed",
					 G_CALLBACK(on_timeline_completed),
					 (gpointer) self);

	/* p->playback_timeline = clutter_timeline_new_for_duration (1000); */
	/* g_signal_connect(p->playback_timeline, "new-frame", */
	/* 				 G_CALLBACK(playback_cb), */
	/* 				 (gpointer) self); */
	/* clutter_timeline_set_loop(p->playback_timeline, TRUE); */
	/* clutter_timeline_start(p->playback_timeline); */

	_gb_player_setup_widgets (self);
	_gb_player_connect_signals (self);
	// TODO: conectar o sinal de mouse move no stage nas areas dos controles pra poder mostrar ou esconder os controles
}
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;
}
Example #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));
}