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 GObject * _constructor (GType type, unsigned int n_properties, GObjectConstructParam *properties) { MpdStorageDeviceTile *self = (MpdStorageDeviceTile *) G_OBJECT_CLASS (mpd_storage_device_tile_parent_class) ->constructor (type, n_properties, properties); MpdStorageDeviceTilePrivate *priv = GET_PRIVATE (self); GError *error = NULL; if (priv->icon_file && g_file_test (priv->icon_file, G_FILE_TEST_IS_REGULAR)) { clutter_texture_set_from_file (CLUTTER_TEXTURE (priv->icon), priv->icon_file, &error); } else { clutter_texture_set_from_file (CLUTTER_TEXTURE (priv->icon), PKGICONDIR "/device-usb.png", &error); } if (error) { g_warning ("%s : %s", G_STRLOC, error->message); g_clear_error (&error); } if (priv->mount_point) { char *path; path = g_filename_from_uri (priv->mount_point, NULL, &error); if (error) { /* not all uris are file paths, that's ok */ if (error->code != G_CONVERT_ERROR_BAD_URI) { g_warning ("%s: Failed to get filename from uri: %s", G_STRLOC, error->message); } g_clear_error (&error); } if (path) { priv->storage = mpd_storage_device_new (path); 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); g_free (path); } update (self); } else { g_critical ("%s : %s", G_STRLOC, "Invalid or no mount-point passed to constructor."); self = NULL; } /* FIXME: import button should only be active if the import app is available, * otherwise show an error. */ if (0 == g_strcmp0 ("x-content/image-dcf", priv->mime_type)) { mx_button_set_label (MX_BUTTON (priv->import), _("Import photos")); } else { mx_button_set_label (MX_BUTTON (priv->import), _("Import media")); } return (GObject *) self; }