[nautilus/wip/csoriano/flow] f
- From: Carlos Soriano <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/csoriano/flow] f
- Date: Fri, 2 Dec 2016 11:54:39 +0000 (UTC)
commit 1e7c50c7977bca2f8912364b97a2408fa8b46b19
Author: Carlos Soriano <csoriano gnome org>
Date: Fri Dec 2 12:53:55 2016 +0100
f
src/Makefile.am | 2 +
src/nautilus-container-max-width.c | 14 ++--
src/nautilus-icon-view-item.c | 123 ++++++++++++++++++++++++++++++++++++
src/nautilus-icon-view-item.h | 18 +++++
src/nautilus-icon-view.c | 4 +-
5 files changed, 152 insertions(+), 9 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 0d38617..8cd7d54 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -170,6 +170,8 @@ nautilus_no_main_sources = \
nautilus-freedesktop-dbus.h \
nautilus-icon-view.c \
nautilus-icon-view.h \
+ nautilus-icon-view-item.c \
+ nautilus-icon-view-item.h \
nautilus-image-properties-page.c \
nautilus-image-properties-page.h \
nautilus-list-model.c \
diff --git a/src/nautilus-container-max-width.c b/src/nautilus-container-max-width.c
index 4a5762e..67134e9 100644
--- a/src/nautilus-container-max-width.c
+++ b/src/nautilus-container-max-width.c
@@ -19,7 +19,7 @@ static GParamSpec *properties [N_PROPS];
void
nautilus_container_max_width_set_max_width (NautilusContainerMaxWidth *self,
- guint max_width)
+ guint max_width)
{
self->max_width = max_width;
gtk_widget_queue_allocate (GTK_WIDGET (self));
@@ -47,9 +47,9 @@ nautilus_container_max_width_finalize (GObject *object)
static void
nautilus_container_max_width_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
NautilusContainerMaxWidth *self = NAUTILUS_CONTAINER_MAX_WIDTH (object);
@@ -70,9 +70,9 @@ nautilus_container_max_width_get_property (GObject *object,
static void
nautilus_container_max_width_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
NautilusContainerMaxWidth *self = NAUTILUS_CONTAINER_MAX_WIDTH (object);
diff --git a/src/nautilus-icon-view-item.c b/src/nautilus-icon-view-item.c
new file mode 100644
index 0000000..d1c0edc
--- /dev/null
+++ b/src/nautilus-icon-view-item.c
@@ -0,0 +1,123 @@
+#include "nautilus-icon-view-item.h"
+
+struct _NautilusIconViewItem
+{
+ GtkFlowBoxChild parent_instance;
+ GtkWidget *item_container;
+};
+
+G_DEFINE_TYPE (NautilusIconViewItem, nautilus_icon_view_item, GTK_TYPE_FLOW_BOX_CHILD)
+
+enum
+{
+ PROP_0,
+ PROP_FILE,
+ N_PROPS
+};
+
+static GParamSpec *properties [N_PROPS];
+
+NautilusIconViewItem *
+nautilus_icon_view_item_new (void)
+{
+ return g_object_new (NAUTILUS_TYPE_ICON_VIEW_ITEM, NULL);
+}
+
+static void
+nautilus_icon_view_item_finalize (GObject *object)
+{
+ NautilusIconViewItem *self = (NautilusIconViewItem *) object;
+
+ G_OBJECT_CLASS (nautilus_icon_view_item_parent_class)->finalize (object);
+}
+
+static void
+nautilus_icon_view_item_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ NautilusIconViewItem *self = NAUTILUS_ICON_VIEW_ITEM (object);
+
+ switch (prop_id)
+ {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+nautilus_icon_view_item_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ NautilusIconViewItem *self = NAUTILUS_ICON_VIEW_ITEM (object);
+
+ switch (prop_id)
+ {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+nautilus_icon_view_item_class_init (NautilusIconViewItemClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->finalize = nautilus_icon_view_item_finalize;
+ object_class->get_property = nautilus_icon_view_item_get_property;
+ object_class->set_property = nautilus_icon_view_item_set_property;
+}
+
+static void
+nautilus_icon_view_item_init (NautilusIconViewItem *self)
+{
+ NautilusIconView *self = NAUTILUS_ICON_VIEW (user_data);
+ NautilusFile *file = NAUTILUS_FILE (item);
+ NautilusIconViewPrivate *priv = nautilus_icon_view_get_instance_private (self);
+ GtkFlowBoxChild *child;
+ GtkBox *container;
+ NautilusContainerMaxWidth *item_container;
+ gint label_nat_size;
+ gint icon_nat_size;
+ GtkLabel *label;
+ GtkWidget *icon;
+ GtkStyleContext *style_context;
+
+ container = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+ self->item_container = nautilus_container_max_width_new ();
+
+ icon = create_icon (self, file);
+ gtk_box_pack_start (container, icon, FALSE, FALSE, 0);
+
+ label = gtk_label_new (nautilus_file_get_display_name (file));
+ gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
+ gtk_label_set_line_wrap (label, TRUE);
+ gtk_label_set_line_wrap_mode (label, PANGO_WRAP_WORD_CHAR);
+ gtk_label_set_lines (label, 4);
+ gtk_label_set_justify (label, GTK_JUSTIFY_CENTER);
+ gtk_widget_set_valign (GTK_WIDGET (label), GTK_ALIGN_START);
+ gtk_box_pack_end (container, label, TRUE, TRUE, 0);
+
+ style_context = gtk_widget_get_style_context (container);
+ gtk_style_context_add_class (style_context, "icon-item-background");
+
+ gtk_widget_show_all (container);
+ gtk_widget_set_valign (container, GTK_ALIGN_START);
+ gtk_widget_set_halign (container, GTK_ALIGN_CENTER);
+
+ gtk_container_add (self->item_container, container);
+ nautilus_container_max_width_set_max_width (NAUTILUS_CONTAINER_MAX_WIDTH (self->item_container),
+ get_icon_size_for_zoom_level (priv->zoom_level));
+
+ child = gtk_flow_box_child_new ();
+ gtk_container_add (child, self->item_container);
+
+ g_object_set_data (child, "file", file);
+ g_object_set_data (child, "icon", icon);
+ g_object_set_data (child, "label", label);
+
+ gtk_widget_show_all (child);
+}
diff --git a/src/nautilus-icon-view-item.h b/src/nautilus-icon-view-item.h
new file mode 100644
index 0000000..1cbaa29
--- /dev/null
+++ b/src/nautilus-icon-view-item.h
@@ -0,0 +1,18 @@
+#ifndef NAUTILUS_ICON_VIEW_ITEM_H
+#define NAUTILUS_ICON_VIEW_ITEM_H
+
+#include <glib.h>
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define NAUTILUS_TYPE_ICON_VIEW_ITEM (nautilus_icon_view_item_get_type())
+
+G_DECLARE_FINAL_TYPE (NautilusIconViewItem, nautilus_icon_view_item, NAUTILUS, ICON_VIEW_ITEM,
GtkFlowBoxChild)
+
+NautilusIconViewItem *nautilus_icon_view_item_new (void);
+
+G_END_DECLS
+
+#endif /* NAUTILUS_ICON_VIEW_ITEM_H */
+
diff --git a/src/nautilus-icon-view.c b/src/nautilus-icon-view.c
index 09d3aa8..7819c58 100644
--- a/src/nautilus-icon-view.c
+++ b/src/nautilus-icon-view.c
@@ -503,8 +503,8 @@ create_widget_func (gpointer item,
gtk_widget_set_halign (container, GTK_ALIGN_CENTER);
gtk_container_add (item_container, container);
- nautilus_icon_view_item_set_max_width (NAUTILUS_ICON_VIEW_ITEM (item_container),
- get_icon_size_for_zoom_level (priv->zoom_level));
+ nautilus_container_max_width_set_max_width (NAUTILUS_CONTAINER_MAX_WIDTH (item_container),
+ get_icon_size_for_zoom_level (priv->zoom_level));
child = gtk_flow_box_child_new ();
gtk_container_add (child, item_container);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]