/** * shell_screenshot_screenshot_area: * @screenshot: the #ShellScreenshot * @x: The X coordinate of the area * @y: The Y coordinate of the area * @width: The width of the area * @height: The height of the area * @filename: The filename for the screenshot * @callback: (scope async): function to call returning success or failure * of the async grabbing * * Takes a screenshot of the passed in area and saves it * in @filename as png image. * */ void shell_screenshot_screenshot_area (ShellScreenshot *screenshot, int x, int y, int width, int height, const char *filename, ShellScreenshotCallback callback) { ClutterActor *stage; _screenshot_data *data = g_new0 (_screenshot_data, 1); data->screenshot = g_object_ref (screenshot); data->filename = g_strdup (filename); data->screenshot_area.x = x; data->screenshot_area.y = y; data->screenshot_area.width = width; data->screenshot_area.height = height; data->callback = callback; stage = CLUTTER_ACTOR (shell_global_get_stage (screenshot->global)); g_signal_connect_after (stage, "paint", G_CALLBACK (grab_area_screenshot), (gpointer)data); clutter_actor_queue_redraw (stage); }
/** * shell_startup_sequence_create_icon: * @sequence: * @size: Size in pixels of icon * * Returns: (transfer none): A new #ClutterTexture containing an icon for the sequence */ ClutterActor * shell_startup_sequence_create_icon (ShellStartupSequence *sequence, guint size) { GIcon *themed; const char *icon_name; ClutterActor *texture; gint scale; ShellGlobal *global; StThemeContext *context; global = shell_global_get (); context = st_theme_context_get_for_stage (shell_global_get_stage (global)); g_object_get (context, "scale-factor", &scale, NULL); icon_name = sn_startup_sequence_get_icon_name ((SnStartupSequence*)sequence); if (!icon_name) { texture = clutter_texture_new (); clutter_actor_set_size (texture, size * scale, size * scale); return texture; } themed = g_themed_icon_new (icon_name); texture = st_texture_cache_load_gicon (st_texture_cache_get_default (), NULL, themed, size, scale); g_object_unref (G_OBJECT (themed)); return texture; }
/** * shell_screenshot_screenshot: * @screenshot: the #ShellScreenshot * @include_cursor: Whether to include the cursor or not * @filename: The filename for the screenshot * @callback: (scope async): function to call returning success or failure * of the async grabbing * * Takes a screenshot of the whole screen * in @filename as png image. * */ void shell_screenshot_screenshot (ShellScreenshot *screenshot, gboolean include_cursor, const char *filename, ShellScreenshotCallback callback) { ClutterActor *stage; _screenshot_data *data = g_new0 (_screenshot_data, 1); data->screenshot = g_object_ref (screenshot); data->filename = g_strdup (filename); data->callback = callback; data->include_cursor = include_cursor; stage = CLUTTER_ACTOR (shell_global_get_stage (screenshot->global)); g_signal_connect_after (stage, "paint", G_CALLBACK (grab_screenshot), (gpointer)data); clutter_actor_queue_redraw (stage); }