gboolean rotate_video (UserInterface * ui) { gfloat *x = 0, *y = 0, *z = 0; gfloat vid_width, vid_height; gfloat x_center, y_center; gdouble angle; angle = clutter_actor_get_rotation (ui->texture, CLUTTER_Z_AXIS, x, y, z); angle += 90; if (angle == 360) angle = 0; clutter_actor_set_rotation (ui->texture, CLUTTER_Z_AXIS, angle, 0, 0, 0); if (angle == 90 || angle == 270) { ui->rotated = TRUE; if (!ui->fullscreen) { clutter_actor_set_width (ui->stage, ui->media_height); clutter_actor_set_height (ui->stage, ui->media_width); } } else { ui->rotated = FALSE; if (!ui->fullscreen) { clutter_actor_set_width (ui->stage, ui->media_width); clutter_actor_set_height (ui->stage, ui->media_height); } } size_change (CLUTTER_STAGE (ui->stage), ui); }
static void _lambda46_ (GObject* _self_, GParamSpec* pspec, EaseSelectionRectangle* self) { #line 58 "ease-selection-rectangle.vala" g_return_if_fail (_self_ != NULL); #line 58 "ease-selection-rectangle.vala" g_return_if_fail (pspec != NULL); #line 59 "ease-selection-rectangle.vala" clutter_actor_set_height ((ClutterActor*) self->priv->left, clutter_actor_get_height ((ClutterActor*) self)); #line 60 "ease-selection-rectangle.vala" clutter_actor_set_height ((ClutterActor*) self->priv->right, clutter_actor_get_height ((ClutterActor*) self)); #line 61 "ease-selection-rectangle.vala" clutter_actor_set_y ((ClutterActor*) self->priv->bottom, clutter_actor_get_height ((ClutterActor*) self)); #line 115 "ease-selection-rectangle.c" }
EaseSelectionRectangle* ease_selection_rectangle_construct (GType object_type) { #line 128 "ease-selection-rectangle.c" EaseSelectionRectangle * self; ClutterRectangle* _tmp0_ = NULL; ClutterRectangle* _tmp1_; ClutterRectangle* _tmp2_ = NULL; ClutterRectangle* _tmp3_; ClutterRectangle* _tmp4_ = NULL; ClutterRectangle* _tmp5_; ClutterRectangle* _tmp6_ = NULL; ClutterRectangle* _tmp7_; self = g_object_newv (object_type, 0, NULL); #line 35 "ease-selection-rectangle.vala" ease_selection_rectangle_make (self, &_tmp0_); #line 35 "ease-selection-rectangle.vala" self->priv->top = (_tmp1_ = _tmp0_, _g_object_unref0 (self->priv->top), _tmp1_); #line 36 "ease-selection-rectangle.vala" ease_selection_rectangle_make (self, &_tmp2_); #line 36 "ease-selection-rectangle.vala" self->priv->bottom = (_tmp3_ = _tmp2_, _g_object_unref0 (self->priv->bottom), _tmp3_); #line 37 "ease-selection-rectangle.vala" ease_selection_rectangle_make (self, &_tmp4_); #line 37 "ease-selection-rectangle.vala" self->priv->left = (_tmp5_ = _tmp4_, _g_object_unref0 (self->priv->left), _tmp5_); #line 38 "ease-selection-rectangle.vala" ease_selection_rectangle_make (self, &_tmp6_); #line 38 "ease-selection-rectangle.vala" self->priv->right = (_tmp7_ = _tmp6_, _g_object_unref0 (self->priv->right), _tmp7_); #line 40 "ease-selection-rectangle.vala" clutter_actor_set_height ((ClutterActor*) self->priv->top, (float) EASE_SELECTION_RECTANGLE_HEIGHT); #line 41 "ease-selection-rectangle.vala" g_object_set ((ClutterActor*) self->priv->top, "anchor-y", (float) (EASE_SELECTION_RECTANGLE_HEIGHT / 2), NULL); #line 43 "ease-selection-rectangle.vala" clutter_actor_set_height ((ClutterActor*) self->priv->bottom, (float) EASE_SELECTION_RECTANGLE_HEIGHT); #line 44 "ease-selection-rectangle.vala" g_object_set ((ClutterActor*) self->priv->bottom, "anchor-y", (float) (EASE_SELECTION_RECTANGLE_HEIGHT / 2), NULL); #line 46 "ease-selection-rectangle.vala" clutter_actor_set_width ((ClutterActor*) self->priv->left, (float) EASE_SELECTION_RECTANGLE_HEIGHT); #line 47 "ease-selection-rectangle.vala" g_object_set ((ClutterActor*) self->priv->left, "anchor-x", (float) (EASE_SELECTION_RECTANGLE_HEIGHT / 2), NULL); #line 49 "ease-selection-rectangle.vala" clutter_actor_set_width ((ClutterActor*) self->priv->right, (float) EASE_SELECTION_RECTANGLE_HEIGHT); #line 50 "ease-selection-rectangle.vala" g_object_set ((ClutterActor*) self->priv->right, "anchor-x", (float) (EASE_SELECTION_RECTANGLE_HEIGHT / 2), NULL); #line 52 "ease-selection-rectangle.vala" g_signal_connect_object ((GObject*) self, "notify::width", (GCallback) __lambda45__g_object_notify, self, 0); #line 58 "ease-selection-rectangle.vala" g_signal_connect_object ((GObject*) self, "notify::height", (GCallback) __lambda46__g_object_notify, self, 0); #line 175 "ease-selection-rectangle.c" return self; }
static void art_cb (RBExtDBKey *key, const char *filename, GValue *data, MxFrame *frame) { ClutterActor *image; GdkPixbuf *pixbuf; if (data == NULL || G_VALUE_HOLDS (data, GDK_TYPE_PIXBUF) == FALSE) { return; } clutter_threads_enter (); image = gtk_clutter_texture_new (); pixbuf = GDK_PIXBUF (g_value_get_object (data)); gtk_clutter_texture_set_from_pixbuf (GTK_CLUTTER_TEXTURE (image), pixbuf, NULL); if (clutter_actor_get_height (image) > MAX_IMAGE_HEIGHT) { clutter_actor_set_height (image, MAX_IMAGE_HEIGHT); clutter_texture_set_keep_aspect_ratio (CLUTTER_TEXTURE (image), TRUE); } if (clutter_actor_get_width (image) > MAX_IMAGE_HEIGHT) { clutter_actor_set_width (image, MAX_IMAGE_HEIGHT); } mx_bin_set_child (MX_BIN (frame), image); clutter_actor_show_all (CLUTTER_ACTOR (frame)); clutter_threads_leave (); }
static void mpd_disk_tile_init (MpdDiskTile *self) { MpdDiskTilePrivate *priv = GET_PRIVATE (self); mx_box_layout_set_orientation (MX_BOX_LAYOUT (self), MX_ORIENTATION_VERTICAL); mx_box_layout_set_spacing (MX_BOX_LAYOUT (self), 5); priv->label = mx_label_new (); clutter_container_add_actor (CLUTTER_CONTAINER (self), priv->label); clutter_text_set_ellipsize (CLUTTER_TEXT (mx_label_get_clutter_text ( MX_LABEL (priv->label))), PANGO_ELLIPSIZE_NONE); priv->meter = mx_progress_bar_new (); clutter_actor_set_height (priv->meter, 12); clutter_container_add_actor (CLUTTER_CONTAINER (self), priv->meter); /* Display size of the volume $HOME is on. */ priv->storage = mpd_storage_device_new (g_get_home_dir ()); g_signal_connect (priv->storage, "notify::size", G_CALLBACK (_storage_size_notify_cb), self); g_signal_connect (priv->storage, "notify::available-size", G_CALLBACK (_storage_size_notify_cb), self); update (self); }
static void ease_pdf_actor_draw_page (EasePdfActor* self) { #line 415 "ease-pdf-actor.c" PopplerPage* page; double width; double height; cairo_t* cr; GError * _inner_error_ = NULL; #line 58 "ease-pdf-actor.vala" g_return_if_fail (self != NULL); #line 61 "ease-pdf-actor.vala" page = _g_object_ref0 (poppler_document_get_page (self->priv->doc, self->priv->current_page)); #line 62 "ease-pdf-actor.vala" width = (double) 0; #line 62 "ease-pdf-actor.vala" height = (double) 0; #line 63 "ease-pdf-actor.vala" poppler_page_get_size (page, &width, &height); #line 66 "ease-pdf-actor.vala" if (self->priv->texture == NULL) { #line 433 "ease-pdf-actor.c" ClutterCairoTexture* _tmp0_; ClutterActor* _tmp1_; #line 68 "ease-pdf-actor.vala" self->priv->texture = (_tmp0_ = g_object_ref_sink ((ClutterCairoTexture*) clutter_cairo_texture_new ((guint) ((gint) width), (guint) ((gint) height))), _g_object_unref0 (self->priv->texture), _tmp0_); #line 69 "ease-pdf-actor.vala" clutter_container_add_actor ((ClutterContainer*) (_tmp1_ = ((EaseActor*) self)->contents, CLUTTER_IS_GROUP (_tmp1_) ? ((ClutterGroup*) _tmp1_) : NULL), (ClutterActor*) self->priv->texture); #line 71 "ease-pdf-actor.vala" clutter_actor_set_width ((ClutterActor*) self->priv->texture, clutter_actor_get_width (((EaseActor*) self)->contents)); #line 72 "ease-pdf-actor.vala" clutter_actor_set_height ((ClutterActor*) self->priv->texture, clutter_actor_get_height (((EaseActor*) self)->contents)); #line 74 "ease-pdf-actor.vala" g_signal_connect_object ((GObject*) ((EaseActor*) self)->contents, "notify::width", (GCallback) __lambda53__g_object_notify, self, 0); #line 78 "ease-pdf-actor.vala" g_signal_connect_object ((GObject*) ((EaseActor*) self)->contents, "notify::height", (GCallback) __lambda54__g_object_notify, self, 0); #line 448 "ease-pdf-actor.c" } else { #line 86 "ease-pdf-actor.vala" clutter_cairo_texture_set_surface_size (self->priv->texture, (guint) ((gint) width), (guint) ((gint) height)); #line 452 "ease-pdf-actor.c" } #line 90 "ease-pdf-actor.vala" clutter_cairo_texture_clear (self->priv->texture); #line 91 "ease-pdf-actor.vala" cr = clutter_cairo_texture_create (self->priv->texture); #line 92 "ease-pdf-actor.vala" ease_background_cairo_render (self->priv->pdf_element->background, cr, (gint) width, (gint) height, ease_document_get_path (ease_slide_get_parent (ease_element_get_parent (((EaseActor*) self)->element))), &_inner_error_); #line 460 "ease-pdf-actor.c" if (_inner_error_ != NULL) { _cairo_destroy0 (cr); _g_object_unref0 (page); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } #line 94 "ease-pdf-actor.vala" poppler_page_render (page, cr); #line 470 "ease-pdf-actor.c" _cairo_destroy0 (cr); _g_object_unref0 (page); }
static void mpl_content_pane_init (MplContentPane *self) { MplContentPanePrivate *priv = GET_PRIVATE (self); mx_box_layout_set_orientation (MX_BOX_LAYOUT (self), MX_ORIENTATION_VERTICAL); mx_box_layout_set_spacing (MX_BOX_LAYOUT (self), 6); priv->header = (MxBoxLayout *) mx_box_layout_new (); mx_box_layout_set_spacing (priv->header, 12); mx_stylable_set_style_class (MX_STYLABLE (priv->header), "header"); clutter_actor_set_height ((ClutterActor *) priv->header, 36); mx_box_layout_insert_actor (MX_BOX_LAYOUT (self), CLUTTER_ACTOR (priv->header), 0); clutter_container_child_set (CLUTTER_CONTAINER (self), (ClutterActor *) priv->header, "expand", FALSE, "x-fill", TRUE, "y-fill", TRUE, NULL); priv->title = (MxLabel *) mx_label_new (); mx_stylable_set_style_class (MX_STYLABLE (priv->title), "title"); mx_box_layout_insert_actor (priv->header, (ClutterActor *) priv->title, 0); clutter_container_child_set (CLUTTER_CONTAINER (priv->header), (ClutterActor *) priv->title, "expand", TRUE, "x-fill", TRUE, "y-fill", FALSE, NULL); }
static void mex_content_tile_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { MexContentTilePrivate *priv = MEX_CONTENT_TILE (object)->priv; switch (property_id) { case PROP_THUMB_WIDTH: priv->thumb_width = g_value_get_int (value); /* Ideally we'd use the image_set variable to determine if we set this, * but for all our use-cases, we always want the set thumbnail width. */ clutter_actor_set_width (priv->image, priv->thumb_width); break; case PROP_THUMB_HEIGHT: priv->thumb_height = g_value_get_int (value); if (priv->image_set) clutter_actor_set_height (priv->image, priv->thumb_height); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } }
static void gml_gtk_widget_create_rect (ClutterActor *parent, JsonObject *obj) { GList *l = NULL; GList *p = NULL; ClutterColor color = { 0x00, 0x00, 0x00, 0xff }; ClutterActor *rect = clutter_rectangle_new (); l = json_object_get_members (obj); for (p = l; p; p = p->next) { if (!strcmp (p->data, "width")) { clutter_actor_set_width (rect, (float)json_object_get_int_member (obj, p->data)); } else if (!strcmp (p->data, "height")) { clutter_actor_set_height (rect, (float)json_object_get_int_member (obj, p->data)); } else if (!strcmp (p->data, "x")) { clutter_actor_set_x (rect, (float)json_object_get_int_member (obj, p->data)); } else if (!strcmp (p->data, "y")) { clutter_actor_set_y (rect, (float)json_object_get_int_member (obj, p->data)); } else if (!strcmp (p->data, "color")) { clutter_color_from_string (&(color), json_object_get_string_member (obj, p->data)); clutter_rectangle_set_color (CLUTTER_RECTANGLE (rect), &color); } else if (!strcmp (p->data, "border.width")) { clutter_rectangle_set_border_width (CLUTTER_RECTANGLE (rect), json_object_get_int_member (obj, p->data)); } else if (!strcmp (p->data, "border.color")) { clutter_color_from_string (&(color), json_object_get_string_member (obj, p->data)); clutter_rectangle_set_border_color (CLUTTER_RECTANGLE (rect), &color); } } clutter_container_add_actor (CLUTTER_CONTAINER (parent), rect); }
/* NOTE: actor is not used with MOD_MODULE */ void lib_object_prepare(obj_t *obj, manager_actor_t *actor) { ClutterActor *stage; uint i; assert( obj != NULL ); /* RENDERING ! */ stage = clutter_stage_get_default(); obj->group = clutter_group_new(); clutter_container_add_actor(CLUTTER_CONTAINER(stage), obj->group); /* create box */ for ( i = 0; i < obj->beatcount; i++ ) { obj->beatbox[i] = clutter_round_rectangle_new(); clutter_actor_set_width(obj->beatbox[i], obj->boxsize); clutter_actor_set_height(obj->beatbox[i], obj->boxsize); clutter_actor_set_x(obj->beatbox[i], obj->boxdx + (i * (obj->boxsize + obj->boxmx))); clutter_actor_set_y(obj->beatbox[i], obj->boxdy); clutter_round_rectangle_set_color(CLUTTER_ROUND_RECTANGLE(obj->beatbox[i]), &obj->beat_background); clutter_round_rectangle_set_border_color(CLUTTER_ROUND_RECTANGLE(obj->beatbox[i]), &obj->beat_border); clutter_round_rectangle_set_border_width(CLUTTER_ROUND_RECTANGLE(obj->beatbox[i]), obj->boxborderwidth); clutter_container_add_actor(CLUTTER_CONTAINER(obj->group), obj->beatbox[i]); } na_event_observe(NA_EV_BPM, metronome_bpm, obj); }
static void mex_telepathy_channel_create_preview (MexTelepathyChannel *self) { MexTelepathyChannelPrivate *priv = MEX_TELEPATHY_CHANNEL (self)->priv; ClutterActor *video_preview_area; priv->video_outgoing = clutter_texture_new (); clutter_texture_set_keep_aspect_ratio (CLUTTER_TEXTURE (priv->video_outgoing), TRUE); priv->outgoing_sink = clutter_gst_video_sink_new (CLUTTER_TEXTURE (priv->video_outgoing)); video_preview_area = mx_stack_new (); clutter_container_add (CLUTTER_CONTAINER (video_preview_area), mex_telepathy_channel_create_static_image(), priv->video_outgoing, NULL); mx_stylable_set_style_class (MX_STYLABLE (video_preview_area), "PreviewStack"); clutter_actor_set_height (video_preview_area, 150.0); clutter_actor_add_effect (video_preview_area, CLUTTER_EFFECT ( mex_telepathy_channel_create_shadow ())); priv->preview_area = mx_frame_new (); mx_stylable_set_style_class (MX_STYLABLE (priv->preview_area), "PreviewPadding"); mx_bin_set_child (MX_BIN (priv->preview_area), video_preview_area); }
static void _resize_alpha (ClutterBehaviour *behave, guint32 alpha, AstroContactRow *row) { AstroContactRowPrivate *priv; gfloat factor; gint dest_height = ROW_HEIGHT; gint current_height, diff_height; g_return_if_fail (ASTRO_IS_CONTACT_ROW (row)); priv = row->priv; factor = (gfloat)alpha/CLUTTER_ALPHA_MAX_ALPHA; if (priv->active) dest_height = (ROW_HEIGHT * 2) + PADDING; current_height = clutter_actor_get_height (priv->bg); if (current_height > dest_height) diff_height = (current_height - dest_height) * -1; else diff_height = dest_height - current_height; clutter_actor_set_height (priv->bg, current_height + ((diff_height * alpha)/CLUTTER_ALPHA_MAX_ALPHA)); }
static void child_expand_complete_cb (ClutterAnimation *animation, ClutterActor *child) { /* child should now be at it's natural height */ clutter_actor_set_height (child, -1); }
static void mex_content_box_init (MexContentBox *self) { MexContentBoxPrivate *priv = self->priv = CONTENT_BOX_PRIVATE (self); ClutterActor *hline, *box; priv->thumb_width = 426; priv->thumb_height = 240; /* Create description panel */ box = mx_box_layout_new (); mx_box_layout_set_orientation (MX_BOX_LAYOUT (box), MX_ORIENTATION_VERTICAL); hline = clutter_rectangle_new_with_color (&hline_color); clutter_actor_set_height (hline, 1); priv->panel = mex_info_panel_new (MEX_INFO_PANEL_MODE_SIMPLE); clutter_container_add (CLUTTER_CONTAINER (box), hline, priv->panel, NULL); /* monitor key press events */ g_signal_connect (self, "key-press-event", G_CALLBACK (mex_content_box_key_press_event_cb), self); /* Create tile */ priv->tile = mex_content_tile_new (); g_object_set (G_OBJECT (priv->tile), "thumb-width", priv->thumb_width, "thumb-height", priv->thumb_height, NULL); mx_bin_set_fill (MX_BIN (priv->tile), TRUE, TRUE); clutter_actor_set_reactive (priv->tile, TRUE); g_signal_connect (priv->tile, "button-release-event", G_CALLBACK (mex_content_box_tile_clicked_cb), self); /* Create secondary box for tile/menu */ priv->box = mex_expander_box_new (); mex_expander_box_set_important (MEX_EXPANDER_BOX (priv->box), TRUE); mex_expander_box_set_grow_direction (MEX_EXPANDER_BOX (priv->box), MEX_EXPANDER_BOX_RIGHT); mex_expander_box_set_primary_child (MEX_EXPANDER_BOX (priv->box), priv->tile); /* Pack box and panel into self */ mex_expander_box_set_primary_child (MEX_EXPANDER_BOX (self), priv->box); mex_expander_box_set_secondary_child (MEX_EXPANDER_BOX (self), box); /* Create the action list */ priv->action_list = mex_action_list_new (); mex_expander_box_set_secondary_child (MEX_EXPANDER_BOX (priv->box), priv->action_list); /* Connect to the open notify signal */ g_signal_connect (self, "notify::open", G_CALLBACK (mex_content_box_notify_open_cb), NULL); }
gint main (gint argc, gchar *argv[]) { ClutterContent *image; ClutterActor *stage; ClutterActor *box; GdkPixbuf *pixbuf; if (clutter_init(&argc, &argv) != CLUTTER_INIT_SUCCESS) { g_printerr("Failed to initialize clutter.\n"); return 1; } stage = clutter_stage_new(); clutter_stage_set_title (CLUTTER_STAGE (stage), "Image Viewer"); clutter_actor_set_size(stage, 1400, 1200); clutter_actor_set_position(stage, 100, 100); g_signal_connect (stage, "destroy", G_CALLBACK (clutter_main_quit), NULL); clutter_actor_show(stage); pixbuf = gdk_pixbuf_new_from_file("testimage_8000.png", NULL); g_assert(pixbuf); image = clutter_image_new(); clutter_image_set_data(CLUTTER_IMAGE(image), gdk_pixbuf_get_pixels(pixbuf), gdk_pixbuf_get_has_alpha(pixbuf) ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888, gdk_pixbuf_get_width(pixbuf), gdk_pixbuf_get_height(pixbuf), gdk_pixbuf_get_rowstride(pixbuf), NULL); g_object_unref(pixbuf); box = clutter_actor_new(); clutter_actor_set_position(box, 0, 0); clutter_actor_set_height(box, 8000); clutter_actor_set_width(box, 1200); //clutter_actor_add_constraint(box, clutter_bind_constraint_new(stage, CLUTTER_BIND_WIDTH, 0.0)); clutter_actor_set_content(box, image); clutter_actor_add_child(stage, box); clutter_actor_show(box); clutter_stage_set_fullscreen(CLUTTER_STAGE(stage), TRUE); clutter_actor_animate(box, CLUTTER_EASE_IN_OUT_QUAD, 4000, "y", -8000.0, NULL); clutter_main(); return 0; }
static void _lambda54_ (GObject* obj, GParamSpec* pspec, EasePdfActor* self) { #line 78 "ease-pdf-actor.vala" g_return_if_fail (obj != NULL); #line 78 "ease-pdf-actor.vala" g_return_if_fail (pspec != NULL); #line 79 "ease-pdf-actor.vala" clutter_actor_set_height ((ClutterActor*) self->priv->texture, clutter_actor_get_height (((EaseActor*) self)->contents)); #line 402 "ease-pdf-actor.c" }
static void meta_switcher_present_list(MetaSwitcher* self) { MetaSwitcherPrivate* priv = self->priv; MetaScreen* screen = meta_plugin_get_screen(priv->plugin); MetaDisplay* display = meta_screen_get_display(screen); // windows on all workspaces GList* ls = meta_display_get_tab_list(display, META_TAB_LIST_NORMAL, NULL); if (!ls) return; GList* ws_list = meta_screen_get_workspaces(screen); g_list_foreach(ws_list, (GFunc)hook_ws_event, self); if (!priv->apps) { priv->apps = g_ptr_array_new(); GList* orig = ls; while (ls) { g_ptr_array_add(priv->apps, ls->data); ls = ls->next; } g_list_free(orig); } clutter_actor_set_height(priv->top, APP_ACTOR_HEIGHT + 20); gint x = 0, y = 0; for (int i = 0; i < priv->apps->len; i++) { _add_app(self, g_ptr_array_index(priv->apps, i), &x, &y); } clutter_actor_set_margin_left(g_hash_table_lookup(priv->icons, g_ptr_array_index(priv->apps, 0)), 10); clutter_actor_set_margin_right(g_hash_table_lookup(priv->icons, g_ptr_array_index(priv->apps, priv->apps->len-1)), 10); gint screen_width = 0, screen_height = 0; meta_screen_get_size(screen, &screen_width, &screen_height); /* TODO: @sonald set top width when bigger than screen width */ if (clutter_actor_get_width(priv->top) > screen_width) clutter_actor_set_width(priv->top, screen_width); gfloat w = clutter_actor_get_width(priv->top), h = clutter_actor_get_height(priv->top), tx = (screen_width - w) / 2, ty = (screen_height - h) / 2; #if DEBUG g_message("%s, line %d, %f %f", __func__, __LINE__, w, tx); #endif clutter_actor_set_position(priv->top, tx, ty); ClutterContent* canvas = clutter_canvas_new(); clutter_canvas_set_size(CLUTTER_CANVAS(canvas), w, h); clutter_actor_set_content(priv->top, canvas); g_object_unref(canvas); g_signal_connect(canvas, "draw", G_CALLBACK(on_switcher_background_draw), self); clutter_content_invalidate(canvas); priv->selected_id = 0; }
/* use a 'missing image' image instead? */ static void set_blank_image (MxFrame *frame) { ClutterActor *blank; ClutterColor nothing = { 0, 0, 0, 0 }; blank = clutter_rectangle_new_with_color (¬hing); clutter_actor_set_height (blank, MAX_IMAGE_HEIGHT); clutter_actor_set_width (blank, MAX_IMAGE_HEIGHT); mx_bin_set_child (MX_BIN (frame), blank); }
static void on_inactive_completed (ClutterActor *actor, gpointer data) { AstroContactRowPrivate *priv; g_return_if_fail (ASTRO_IS_CONTACT_ROW (data)); priv = ASTRO_CONTACT_ROW_GET_PRIVATE (data); clutter_actor_set_height (priv->bg, ROW_HEIGHT); clutter_actor_set_opacity (priv->bar, 0); }
static void _stage_height_notify_cb (ClutterActor *stage, GParamSpec *pspec, MpdShell *shell) { float height; height = clutter_actor_get_height (stage); clutter_actor_set_height (CLUTTER_ACTOR (shell), height); }
static void size_allocate_cb(GtkWidget* widget, GdkRectangle* alloc, gpointer udata) { GtPlayerBackendGstreamerClutter* self = GT_PLAYER_BACKEND_GSTREAMER_CLUTTER(udata); GtPlayerBackendGstreamerClutterPrivate* priv = gt_player_backend_gstreamer_clutter_get_instance_private(self); clutter_actor_set_width(priv->video_actor, (gfloat) alloc->width); clutter_actor_set_height(priv->video_actor, (gfloat) alloc->height); }
void ease_welcome_actor_set_actor_size (EaseWelcomeActor* self, float w, float h) { #line 175 "ease-welcome-actor.vala" g_return_if_fail (self != NULL); #line 177 "ease-welcome-actor.vala" clutter_actor_set_width ((ClutterActor*) self->priv->rect, roundf (w) + (EASE_WELCOME_ACTOR_RECT_B_W * 2)); #line 178 "ease-welcome-actor.vala" clutter_actor_set_height ((ClutterActor*) self->priv->rect, roundf (h) + (EASE_WELCOME_ACTOR_RECT_B_W * 2)); #line 180 "ease-welcome-actor.vala" clutter_actor_set_width ((ClutterActor*) self->priv->hilight_rect, roundf (w) + (EASE_WELCOME_ACTOR_HLRECT_W * 2)); #line 181 "ease-welcome-actor.vala" clutter_actor_set_height ((ClutterActor*) self->priv->hilight_rect, roundf (h) + (EASE_WELCOME_ACTOR_HLRECT_W * 2)); #line 183 "ease-welcome-actor.vala" clutter_actor_set_x ((ClutterActor*) self->priv->text, roundf ((w / 2) - (clutter_actor_get_width ((ClutterActor*) self->priv->text) / 2))); #line 184 "ease-welcome-actor.vala" clutter_actor_set_y ((ClutterActor*) self->priv->text, roundf (h + EASE_WELCOME_ACTOR_TEXT_OFFSET)); #line 186 "ease-welcome-actor.vala" if (self->priv->slide_actor != NULL) { #line 188 "ease-welcome-actor.vala" clutter_actor_set_width ((ClutterActor*) self->priv->slide_actor, roundf (w)); #line 189 "ease-welcome-actor.vala" clutter_actor_set_height ((ClutterActor*) self->priv->slide_actor, roundf (h)); #line 314 "ease-welcome-actor.c" } }
EasePdfActor* ease_pdf_actor_construct (GType object_type, EasePdfElement* e, EaseActorContext c) { #line 325 "ease-pdf-actor.c" EasePdfActor * self; Block9Data* _data9_; EasePdfElement* _tmp0_; ClutterActor* _tmp1_; PopplerDocument* _tmp2_; #line 34 "ease-pdf-actor.vala" g_return_val_if_fail (e != NULL, NULL); #line 333 "ease-pdf-actor.c" _data9_ = g_slice_new0 (Block9Data); _data9_->_ref_count_ = 1; _data9_->e = _g_object_ref0 (e); #line 36 "ease-pdf-actor.vala" _data9_->self = g_object_ref (self = (EasePdfActor*) ease_actor_construct (object_type, (EaseElement*) _data9_->e, c)); #line 38 "ease-pdf-actor.vala" self->priv->pdf_element = (_tmp0_ = _g_object_ref0 (_data9_->e), _g_object_unref0 (self->priv->pdf_element), _tmp0_); #line 40 "ease-pdf-actor.vala" ((EaseActor*) self)->contents = (_tmp1_ = (ClutterActor*) g_object_ref_sink ((ClutterGroup*) clutter_group_new ()), _g_object_unref0 (((EaseActor*) self)->contents), _tmp1_); #line 41 "ease-pdf-actor.vala" clutter_actor_set_width (((EaseActor*) self)->contents, ease_element_get_width ((EaseElement*) _data9_->e)); #line 42 "ease-pdf-actor.vala" clutter_actor_set_height (((EaseActor*) self)->contents, ease_element_get_height ((EaseElement*) _data9_->e)); #line 43 "ease-pdf-actor.vala" clutter_actor_set_x ((ClutterActor*) self, ease_element_get_x ((EaseElement*) _data9_->e)); #line 44 "ease-pdf-actor.vala" clutter_actor_set_y ((ClutterActor*) self, ease_element_get_y ((EaseElement*) _data9_->e)); #line 45 "ease-pdf-actor.vala" clutter_container_add_actor ((ClutterContainer*) self, ((EaseActor*) self)->contents); #line 47 "ease-pdf-actor.vala" self->priv->current_page = ease_pdf_element_get_displayed_page (_data9_->e); #line 48 "ease-pdf-actor.vala" self->priv->doc = (_tmp2_ = _g_object_ref0 (_data9_->e->pdf_doc), _g_object_unref0 (self->priv->doc), _tmp2_); #line 49 "ease-pdf-actor.vala" ease_pdf_actor_draw_page (self); #line 52 "ease-pdf-actor.vala" g_signal_connect_data ((EaseElement*) _data9_->e, "changed", (GCallback) __lambda55__ease_element_changed, block9_data_ref (_data9_), (GClosureNotify) block9_data_unref, 0); #line 361 "ease-pdf-actor.c" block9_data_unref (_data9_); return self; }
static void manager_event_cursor_new(unsigned short type, void *userdata, void *data) { tuio_cursor_t *o = (tuio_cursor_t *)data; manager_cursor_t *el; ClutterActor *stage, *ac; uint wx, wy; assert( data != NULL ); el = malloc(sizeof(struct manager_cursor_s)); LIST_INSERT_HEAD(&manager_cursors_list, el, next); el->id = o->s_id; snprintf(el->label, sizeof(el->label), "%d", o->s_id); el->actor = clutter_group_new(); stage = clutter_stage_get_default(); clutter_actor_get_size(stage, &wx, &wy); /* create rectangle */ ac = clutter_rectangle_new_with_color(&obj_background); clutter_rectangle_set_border_color((ClutterRectangle *)ac, &obj_border); clutter_rectangle_set_border_width((ClutterRectangle *)ac, 2); clutter_actor_set_height(ac, 10); clutter_actor_set_width(ac, 10); clutter_container_add_actor(CLUTTER_CONTAINER(el->actor), ac); /* some position */ clutter_actor_set_position(el->actor, o->xpos * (float)wx, o->ypos * (float)wy); clutter_actor_show(el->actor); clutter_container_add_actor(CLUTTER_CONTAINER(stage), el->actor); }
static void mex_telepathy_channel_create_toolbar (MexTelepathyChannel *self) { MexTelepathyChannelPrivate *priv = MEX_TELEPATHY_CHANNEL (self)->priv; gchar *static_image_path; ClutterActor *toolbar; MxAction *end_action; MxAction *camera_action; MxAction *mute_action; GError *error = NULL; // Create the user label priv->avatar_image = mx_image_new (); static_image_path = g_build_filename (mex_get_data_dir (), "style", "thumb-call-avatar-small.png", NULL); mx_image_set_from_file (MX_IMAGE (priv->avatar_image), static_image_path, &error); if (error) { g_warning ("Error loading texture %s", error->message); g_clear_error (&error); } if (static_image_path) g_free (static_image_path); priv->title_label = mx_label_new (); mx_label_set_y_align (MX_LABEL (priv->title_label), MX_ALIGN_MIDDLE); mx_label_set_x_align (MX_LABEL (priv->title_label), MX_ALIGN_MIDDLE); end_action = mx_action_new_full ("End", "Hang Up", G_CALLBACK (mex_telepathy_channel_on_hangup), self); priv->end_button = mex_action_button_new (end_action); mx_stylable_set_style_class (MX_STYLABLE (priv->end_button), "EndCall"); camera_action = mx_action_new_full("Camera", "Camera Off", G_CALLBACK (mex_telepathy_channel_toggle_camera), self); priv->camera_button = mex_action_button_new (camera_action); /* off by default */ mex_telepathy_channel_set_camera_state (self, FALSE); mute_action = mx_action_new_full("Mute", "Mic Off", G_CALLBACK (mex_telepathy_channel_toggle_mute), self); priv->mute_button = mex_action_button_new (mute_action); mx_stylable_set_style_class (MX_STYLABLE (priv->mute_button), "MediaMute"); toolbar = mx_box_layout_new (); clutter_actor_set_width (toolbar, 980); clutter_actor_set_height (toolbar, 48); mx_stylable_set_style_class (MX_STYLABLE (toolbar), "MexCallControlsTitle"); // Put the buttons in the toolbar mx_box_layout_add_actor_with_properties (MX_BOX_LAYOUT (toolbar), priv->avatar_image, 0, "expand", FALSE, "x-align", MX_ALIGN_END, "x-fill", FALSE, NULL); mx_box_layout_add_actor_with_properties (MX_BOX_LAYOUT (toolbar), priv->title_label, 1, "expand", TRUE, NULL); mx_box_layout_add_actor_with_properties (MX_BOX_LAYOUT (toolbar), priv->camera_button, 2, "expand", TRUE, NULL); mx_box_layout_add_actor_with_properties (MX_BOX_LAYOUT (toolbar), priv->mute_button, 3, "expand", TRUE, NULL); mx_box_layout_add_actor_with_properties (MX_BOX_LAYOUT (toolbar), priv->end_button, 4, "expand", TRUE, NULL); priv->toolbar_area = mx_frame_new (); mx_bin_set_child (MX_BIN (priv->toolbar_area), toolbar); mx_stylable_set_style_class (MX_STYLABLE (priv->toolbar_area), "ToolbarArea"); }
static void mtp_bin_constructed (GObject *self) { MtpBinPrivate *priv = MTP_BIN (self)->priv; MtpToolbar *toolbar = (MtpToolbar*) mtp_toolbar_new (); ClutterActor *box = (ClutterActor *)self; ClutterActor *jar = mtp_jar_new (); GConfClient *client; priv->toolbar = (ClutterActor*)toolbar; priv->jar = jar; clutter_actor_set_name (jar, "jar"); clutter_actor_set_height ((ClutterActor*)toolbar, TOOLBAR_HEIGHT); mx_box_layout_set_orientation (MX_BOX_LAYOUT (box), MX_ORIENTATION_VERTICAL); mx_box_layout_set_spacing (MX_BOX_LAYOUT (box), 10); clutter_container_add (CLUTTER_CONTAINER (box), (ClutterActor*)toolbar, NULL); { ClutterActor *dummy = mx_label_new (); ClutterActor *hbox = mx_box_layout_new (); ClutterActor *button = mx_button_new_with_label (_("Save toolbar")); clutter_actor_set_name (hbox, "message-box"); clutter_actor_set_name (button, "save-button"); priv->err_msg = _("Sorry, you'll have to remove a panel before you can " "add a new one."); priv->normal_msg = _("You can add, remove, and reorder many of the panels " "in your toolbar."); priv->message = mx_label_new_with_text (priv->normal_msg); clutter_actor_set_name (priv->message, "error-message"); clutter_container_add (CLUTTER_CONTAINER (box), hbox, NULL); clutter_container_add (CLUTTER_CONTAINER (hbox), priv->message, dummy, button, NULL); clutter_container_child_set (CLUTTER_CONTAINER (hbox), dummy, "expand", TRUE, NULL); clutter_container_child_set (CLUTTER_CONTAINER (hbox), button, "x-align", MX_ALIGN_END, "y-align", MX_ALIGN_MIDDLE, NULL); clutter_container_child_set (CLUTTER_CONTAINER (hbox), priv->message, "y-align", MX_ALIGN_MIDDLE, NULL); g_signal_connect (button, "clicked", G_CALLBACK (mtp_bin_save_button_clicked_cb), self); g_signal_connect (toolbar, "notify::free-space", G_CALLBACK (mtp_bin_toolbar_free_space_cb), self); } clutter_container_add (CLUTTER_CONTAINER (box), jar, NULL); clutter_container_child_set (CLUTTER_CONTAINER (box), jar, "expand", TRUE, NULL); client = priv->client = gconf_client_get_default (); gconf_client_add_dir (client, KEY_DIR, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); }
static void _reset_thumbnail (MexContentTile *tile) { MexContentTilePrivate *priv = tile->priv; MexDownloadQueue *queue = mex_download_queue_get_default (); const gchar *mime = NULL; gchar *placeholder_filename = NULL; queue = mex_download_queue_get_default (); /* cancel any download already in progress */ if (priv->download_id) { mex_download_queue_cancel (queue, priv->download_id); priv->download_id = NULL; } priv->thumbnail_loaded = FALSE; /* Load placeholder image */ if (priv->content) mime = mex_content_get_metadata (priv->content, MEX_CONTENT_METADATA_MIMETYPE); if (mime && g_str_has_prefix (mime, "image/")) { placeholder_filename = "thumb-image.png"; } else if (mime && g_str_equal (mime, "x-mex/tv")) { placeholder_filename = "thumb-tv.png"; } else if (mime && g_str_equal (mime, "video/dvd")) { placeholder_filename = "thumb-disc.png"; } else if (mime && (g_str_has_prefix (mime, "video/") || g_str_equal (mime, "x-mex/media"))) { placeholder_filename = "thumb-video.png"; } else if (mime && (g_str_has_prefix (mime, "audio/"))) { placeholder_filename = "thumb-music.png"; } else if (mime && g_str_equal (mime, "x-grl/box")) { placeholder_filename = "folder-tile.png"; } else if (mime && g_str_equal (mime, "x-mex/group")) { placeholder_filename = "folder-tile.png"; } else if (mime && g_str_equal (mime, "x-mex/app")) { placeholder_filename = "thumb-app.png"; } if (placeholder_filename) { gchar *tmp; const gchar *dir = mex_get_data_dir (); tmp = g_build_filename (dir, "style", placeholder_filename, NULL); _update_thumbnail_from_image (tile, tmp); g_free (tmp); } else { mx_image_clear (MX_IMAGE (priv->image)); /* Reset the height - really, we ought to reset the width and height, * but for all our use-cases, we want to keep the set width. */ clutter_actor_set_height (priv->image, -1); priv->image_set = FALSE; return; } clutter_actor_set_size (priv->image, priv->thumb_width, priv->thumb_height); }
EaseWelcomeActor* ease_welcome_actor_construct (GType object_type, EaseTheme* t) { #line 152 "ease-welcome-actor.c" EaseWelcomeActor * self; ClutterRectangle* _tmp0_; ClutterColor _tmp1_; ClutterColor _tmp2_; ClutterRectangle* _tmp3_; ClutterColor _tmp4_ = {0}; ClutterColor _tmp5_; ClutterColor _tmp6_; ClutterText* _tmp7_; ClutterCairoTexture* _tmp8_; #line 94 "ease-welcome-actor.vala" g_return_val_if_fail (t != NULL, NULL); #line 165 "ease-welcome-actor.c" self = g_object_newv (object_type, 0, NULL); #line 96 "ease-welcome-actor.vala" ease_welcome_actor_set_theme (self, t); #line 97 "ease-welcome-actor.vala" clutter_actor_set_reactive ((ClutterActor*) self, TRUE); #line 100 "ease-welcome-actor.vala" self->priv->rect = (_tmp0_ = g_object_ref_sink ((ClutterRectangle*) clutter_rectangle_new ()), _g_object_unref0 (self->priv->rect), _tmp0_); #line 101 "ease-welcome-actor.vala" clutter_rectangle_set_color (self->priv->rect, (_tmp1_ = EASE_WELCOME_ACTOR_RECT_BG, &_tmp1_)); #line 102 "ease-welcome-actor.vala" clutter_rectangle_set_border_color (self->priv->rect, (_tmp2_ = EASE_WELCOME_ACTOR_RECT_B_C, &_tmp2_)); #line 103 "ease-welcome-actor.vala" clutter_rectangle_set_border_width (self->priv->rect, (guint) EASE_WELCOME_ACTOR_RECT_B_W); #line 104 "ease-welcome-actor.vala" clutter_actor_set_x ((ClutterActor*) self->priv->rect, (float) (-EASE_WELCOME_ACTOR_RECT_B_W)); #line 105 "ease-welcome-actor.vala" clutter_actor_set_y ((ClutterActor*) self->priv->rect, (float) (-EASE_WELCOME_ACTOR_RECT_B_W)); #line 106 "ease-welcome-actor.vala" clutter_container_add_actor ((ClutterContainer*) self, (ClutterActor*) self->priv->rect); #line 109 "ease-welcome-actor.vala" self->priv->hilight_rect = (_tmp3_ = g_object_ref_sink ((ClutterRectangle*) clutter_rectangle_new ()), _g_object_unref0 (self->priv->hilight_rect), _tmp3_); #line 110 "ease-welcome-actor.vala" clutter_rectangle_set_color (self->priv->hilight_rect, (_tmp5_ = (_tmp4_.red = (guchar) 0, _tmp4_.green = (guchar) 0, _tmp4_.blue = (guchar) 0, _tmp4_.alpha = (guchar) 255, _tmp4_), &_tmp5_)); #line 111 "ease-welcome-actor.vala" clutter_actor_set_opacity ((ClutterActor*) self->priv->hilight_rect, (guint) 0); #line 112 "ease-welcome-actor.vala" clutter_rectangle_set_border_color (self->priv->hilight_rect, (_tmp6_ = EASE_WELCOME_ACTOR_HLRECT_C, &_tmp6_)); #line 113 "ease-welcome-actor.vala" clutter_rectangle_set_border_width (self->priv->hilight_rect, (guint) EASE_WELCOME_ACTOR_HLRECT_W); #line 114 "ease-welcome-actor.vala" clutter_actor_set_x ((ClutterActor*) self->priv->hilight_rect, (float) (-EASE_WELCOME_ACTOR_HLRECT_W)); #line 115 "ease-welcome-actor.vala" clutter_actor_set_y ((ClutterActor*) self->priv->hilight_rect, (float) (-EASE_WELCOME_ACTOR_HLRECT_W)); #line 116 "ease-welcome-actor.vala" clutter_container_add_actor ((ClutterContainer*) self, (ClutterActor*) self->priv->hilight_rect); #line 119 "ease-welcome-actor.vala" self->priv->text = (_tmp7_ = g_object_ref_sink ((ClutterText*) clutter_text_new_full (EASE_WELCOME_ACTOR_FONT_NAME, self->priv->_theme->title, &EASE_WELCOME_ACTOR_TEXT_COLOR)), _g_object_unref0 (self->priv->text), _tmp7_); #line 120 "ease-welcome-actor.vala" clutter_actor_set_height ((ClutterActor*) self->priv->text, EASE_WELCOME_ACTOR_TEXT_HEIGHT); #line 121 "ease-welcome-actor.vala" clutter_text_set_line_alignment (self->priv->text, PANGO_ALIGN_RIGHT); #line 122 "ease-welcome-actor.vala" clutter_container_add_actor ((ClutterContainer*) self, (ClutterActor*) self->priv->text); #line 125 "ease-welcome-actor.vala" self->priv->slide_actor = (_tmp8_ = g_object_ref_sink ((ClutterCairoTexture*) clutter_cairo_texture_new ((guint) 1024, (guint) 768)), _g_object_unref0 (self->priv->slide_actor), _tmp8_); #line 126 "ease-welcome-actor.vala" clutter_container_add_actor ((ClutterContainer*) self, (ClutterActor*) self->priv->slide_actor); #line 129 "ease-welcome-actor.vala" clutter_actor_set_opacity ((ClutterActor*) self, (guint) 0); #line 130 "ease-welcome-actor.vala" clutter_actor_animate ((ClutterActor*) self, (gulong) EASE_WELCOME_ACTOR_FADE_EASE, (guint) EASE_WELCOME_ACTOR_FADE_INIT_TIME, "opacity", 255, NULL); #line 133 "ease-welcome-actor.vala" g_signal_connect_object ((ClutterActor*) self, "button-press-event", (GCallback) __lambda55__clutter_actor_button_press_event, self, 0); #line 219 "ease-welcome-actor.c" return self; }
int main(int argc, char *argv[]) { ClutterActor *stage; WebKitWebView *web_view; ClutterConstraint *width_binding; ClutterConstraint *height_binding; ClutterConstraint *web_view_height_binding; gfloat stageWidth, stageHeight; ClutterActorBox stageAllocation; ClutterLayoutManager *mainLayout; ClutterActor *mainLayoutContainer; ClutterLayoutManager *toolbarLayout; ClutterActor *toolbarContainer; ClutterLayoutManager *toolbarBinLayout; ClutterActor *toolbarBinContainer; ClutterActor *toolbarBgr; ClutterActor *statusBar; ClutterActor *backFwdBtns; ClutterActor *backBtn; ClutterActor *fwdBtn; ClutterActor *uriGroup; ClutterActor *uriBgr; ClutterActor *uriText; ClutterActor *spacer; GError *error = NULL; ClutterColor whiteColor = { 255, 255, 255, 255 }; ClutterColor blackColor = { 0, 0, 0, 255 }; ClutterColor grayColor = { 200, 200, 200, 255 }; ClutterColor transparentColor = { 0, 0, 0, 0 }; gchar *toolbarBgrPath = clutter_launcher_file_path("toolbar_bgr.png"); gchar *backBtnPath = clutter_launcher_file_path("back_btn.png"); gchar *fwdBtnPath = clutter_launcher_file_path("fwd_btn.png"); g_thread_init(NULL); clutter_threads_init(); clutter_init(&argc, &argv); stage = clutter_stage_get_default(); clutter_actor_set_size(stage, 1024, 768); clutter_stage_set_color(CLUTTER_STAGE(stage), &stage_color); g_signal_connect (stage, "destroy", G_CALLBACK(clutter_main_quit), NULL); /* make the stage resizable */ clutter_stage_set_user_resizable(CLUTTER_STAGE(stage), TRUE); clutter_actor_show(stage); mainLayout = clutter_box_layout_new(); clutter_box_layout_set_vertical(CLUTTER_BOX_LAYOUT(mainLayout), TRUE); clutter_actor_get_allocation_box(stage, &stageAllocation); stageWidth = stageAllocation.x2 - stageAllocation.x1; stageHeight = stageAllocation.y2 - stageAllocation.y1; web_view = WEBKIT_WEB_VIEW(webkit_web_view_new((guint)stageWidth, (guint)stageHeight - (toolbarHeight + statusBarHeight))); g_object_set(web_view, "reactive", TRUE, NULL); mainLayoutContainer = clutter_box_new(mainLayout); clutter_actor_set_size(mainLayoutContainer, stageWidth, stageHeight); width_binding = clutter_bind_constraint_new(stage, CLUTTER_BIND_WIDTH, 0); height_binding = clutter_bind_constraint_new(stage, CLUTTER_BIND_HEIGHT, 0); /* web_view_height_binding = clutter_bind_constraint_new(stage, CLUTTER_BIND_HEIGHT, -(toolbarHeight + statusBarHeight)); */ clutter_actor_add_constraint(mainLayoutContainer, width_binding); clutter_actor_add_constraint(mainLayoutContainer, height_binding); /* clutter_actor_add_constraint(CLUTTER_ACTOR(web_view), web_view_height_binding); */ toolbarBinLayout = clutter_bin_layout_new(CLUTTER_BIN_ALIGNMENT_FILL, CLUTTER_BIN_ALIGNMENT_CENTER); toolbarBinContainer = clutter_box_new(toolbarBinLayout); toolbarBgr = clutter_texture_new_from_file(toolbarBgrPath, &error); if (toolbarBgr == NULL) { fprintf(stderr, "Can't load file: %s. Aborting...\n", toolbarBgrPath); exit(1); } clutter_actor_set_height(toolbarBgr, toolbarHeight); clutter_texture_set_repeat(CLUTTER_TEXTURE(toolbarBgr), TRUE, FALSE); clutter_box_pack(CLUTTER_BOX(toolbarBinContainer), toolbarBgr, NULL, NULL); toolbarLayout = clutter_box_layout_new(); clutter_box_layout_set_vertical(CLUTTER_BOX_LAYOUT(toolbarLayout), FALSE); clutter_box_layout_set_spacing(CLUTTER_BOX_LAYOUT(toolbarLayout), 16); toolbarContainer = clutter_box_new(toolbarLayout); spacer = clutter_rectangle_new_with_color(&transparentColor); clutter_actor_set_size(spacer, 1, 1); clutter_box_pack(CLUTTER_BOX(toolbarContainer), spacer, NULL, NULL); backFwdBtns = clutter_group_new(); backBtn = clutter_texture_new_from_file(backBtnPath, &error); if (backBtn == NULL) { fprintf(stderr, "Can't load file: %s. Aborting...\n", backBtnPath); exit(1); } clutter_actor_set_reactive(backBtn, TRUE); /* connect the release event */ g_signal_connect (backBtn, "button-release-event", G_CALLBACK (on_back_release_cb), web_view); fwdBtn = clutter_texture_new_from_file(fwdBtnPath, &error); if (fwdBtn == NULL) { fprintf(stderr, "Can't load file: %s. Aborting...\n", fwdBtnPath); exit(1); } clutter_actor_set_reactive(fwdBtn, TRUE); /* connect the release event */ g_signal_connect (fwdBtn, "button-release-event", G_CALLBACK (on_fwd_release_cb), web_view); clutter_actor_set_position(fwdBtn, clutter_actor_get_width(backBtn), 0); clutter_container_add(CLUTTER_CONTAINER(backFwdBtns), backBtn, fwdBtn, NULL); clutter_box_pack(CLUTTER_BOX(toolbarContainer), backFwdBtns, NULL, NULL); uriGroup = clutter_group_new(); uriBgr = clutter_rectangle_new_with_color(&whiteColor); clutter_rectangle_set_border_color(CLUTTER_RECTANGLE(uriBgr), &blackColor); clutter_rectangle_set_border_width(CLUTTER_RECTANGLE(uriBgr), 1); clutter_actor_set_size(uriBgr, 400, 25); uriText = clutter_text_new_full("Helvetica 11px", "http://www.google.com", &blackColor); clutter_text_set_editable(CLUTTER_TEXT(uriText), TRUE); clutter_text_set_single_line_mode(CLUTTER_TEXT(uriText), TRUE); clutter_actor_set_position(uriText, 5, 7); clutter_actor_set_size(uriText, 390, 17); clutter_actor_set_reactive(uriText, TRUE); g_signal_connect(uriText, "activate", G_CALLBACK(on_uri_activate_cb), web_view); clutter_container_add(CLUTTER_CONTAINER(uriGroup), uriBgr, uriText, NULL); clutter_box_pack(CLUTTER_BOX(toolbarContainer), uriGroup, NULL, NULL); clutter_box_pack(CLUTTER_BOX(toolbarBinContainer), toolbarContainer, NULL, NULL); clutter_box_pack(CLUTTER_BOX(mainLayoutContainer), toolbarBinContainer, "y-align", CLUTTER_BOX_ALIGNMENT_START, NULL); clutter_box_layout_set_expand(CLUTTER_BOX_LAYOUT(mainLayout), toolbarBinContainer, TRUE); clutter_box_layout_set_fill(CLUTTER_BOX_LAYOUT(mainLayout), toolbarBinContainer, TRUE, FALSE); statusBar = clutter_rectangle_new_with_color(&grayColor); clutter_actor_set_height(statusBar, statusBarHeight); clutter_box_pack(CLUTTER_BOX(mainLayoutContainer), statusBar, "y-align", CLUTTER_BOX_ALIGNMENT_END, NULL); clutter_box_layout_set_expand(CLUTTER_BOX_LAYOUT(mainLayout), statusBar, TRUE); clutter_box_layout_set_fill(CLUTTER_BOX_LAYOUT(mainLayout), statusBar, TRUE, FALSE); clutter_box_pack_after(CLUTTER_BOX(mainLayoutContainer), CLUTTER_ACTOR(web_view), toolbarBinContainer, "y-align", CLUTTER_BOX_ALIGNMENT_START, NULL); clutter_box_layout_set_expand(CLUTTER_BOX_LAYOUT(mainLayout), CLUTTER_ACTOR(web_view), TRUE); clutter_box_layout_set_fill(CLUTTER_BOX_LAYOUT(mainLayout), CLUTTER_ACTOR(web_view), TRUE, TRUE); clutter_container_add(CLUTTER_CONTAINER(stage), mainLayoutContainer, NULL); g_signal_connect(web_view, "webkit-load-finished", G_CALLBACK(load_finished_cb), web_view); g_signal_connect(web_view, "notify::progress", G_CALLBACK (notify_progress_cb), web_view); /* g_signal_connect(stage, "delete-event", G_CALLBACK(delete_cb), web_view);*/ g_signal_connect(web_view, "notify::uri", G_CALLBACK(notify_uri_cb), uriText); gchar *uri = (gchar*) (argc > 1 ? argv[1] : "http://www.google.com/"); gchar *fileURL = filenameToURL(uri); webkit_web_view_load_uri(web_view, fileURL ? fileURL : uri); printf("%s\n", fileURL ? fileURL : uri); g_free(fileURL); g_timeout_add_full(G_PRIORITY_DEFAULT, 3000, timeout_cb, web_view, 0); clutter_threads_enter (); clutter_main(); clutter_threads_leave (); return EXIT_SUCCESS; }
IO_METHOD(IoClutterActor, setHeight) { clutter_actor_set_height(IOCACTOR(self), IoMessage_locals_floatArgAt_(m, locals, 0)); return self; }