[nautilus] canvas-container: remove NautilusCanvasLayoutMode
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] canvas-container: remove NautilusCanvasLayoutMode
- Date: Thu, 4 Oct 2012 21:57:17 +0000 (UTC)
commit d6c89019d493b7de6abca3849e397e3685e52d82
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Thu Oct 4 17:03:29 2012 -0400
canvas-container: remove NautilusCanvasLayoutMode
Since we use the vertical layout only for the desktop these days, remove
NautilusCanvasLayoutMode completely, and just return TRUE from
nautilus_canvas_container_layout_is_vertical() if we're a desktop
container.
This allows to remove a lot of unused layouting code.
libnautilus-private/nautilus-canvas-container.c | 248 +----------------------
libnautilus-private/nautilus-canvas-container.h | 9 -
libnautilus-private/nautilus-canvas-private.h | 3 -
src/nautilus-canvas-view.c | 14 +-
src/nautilus-desktop-canvas-view.c | 6 -
5 files changed, 12 insertions(+), 268 deletions(-)
---
diff --git a/libnautilus-private/nautilus-canvas-container.c b/libnautilus-private/nautilus-canvas-container.c
index de493d4..98b35f3 100644
--- a/libnautilus-private/nautilus-canvas-container.c
+++ b/libnautilus-private/nautilus-canvas-container.c
@@ -1195,43 +1195,6 @@ lay_down_one_line (NautilusCanvasContainer *container,
}
static void
-lay_down_one_column (NautilusCanvasContainer *container,
- GList *line_start,
- GList *line_end,
- double x,
- double y_start,
- double y_iter,
- GArray *positions)
-{
- GList *p;
- NautilusCanvasIcon *icon;
- double y;
- IconPositions *position;
- int i;
- gboolean is_rtl;
-
- is_rtl = nautilus_canvas_container_is_layout_rtl (container);
-
- /* Lay out the icons along the baseline. */
- y = y_start;
- i = 0;
- for (p = line_start; p != line_end; p = p->next) {
- icon = p->data;
-
- position = &g_array_index (positions, IconPositions, i++);
-
- icon_set_position
- (icon,
- is_rtl ? get_mirror_x_position (container, icon, x + position->x_offset) : x + position->x_offset,
- y + position->y_offset);
-
- icon->saved_ltr_x = is_rtl ? get_mirror_x_position (container, icon, icon->x) : icon->x;
-
- y += y_iter;
- }
-}
-
-static void
lay_down_icons_horizontal (NautilusCanvasContainer *container,
GList *icons,
double start_y)
@@ -1336,171 +1299,6 @@ lay_down_icons_horizontal (NautilusCanvasContainer *container,
}
static void
-get_max_icon_dimensions (GList *icon_start,
- GList *icon_end,
- double *max_icon_width,
- double *max_icon_height,
- double *max_text_width,
- double *max_text_height,
- double *max_bounds_height)
-{
- NautilusCanvasIcon *icon;
- EelDRect icon_bounds;
- EelDRect text_bounds;
- GList *p;
- double y1, y2;
-
- *max_icon_width = *max_text_width = 0.0;
- *max_icon_height = *max_text_height = 0.0;
- *max_bounds_height = 0.0;
-
- /* Would it be worth caching these bounds for the next loop? */
- for (p = icon_start; p != icon_end; p = p->next) {
- icon = p->data;
-
- icon_bounds = nautilus_canvas_item_get_icon_rectangle (icon->item);
- *max_icon_width = MAX (*max_icon_width, ceil (icon_bounds.x1 - icon_bounds.x0));
- *max_icon_height = MAX (*max_icon_height, ceil (icon_bounds.y1 - icon_bounds.y0));
-
- text_bounds = nautilus_canvas_item_get_text_rectangle (icon->item, TRUE);
- *max_text_width = MAX (*max_text_width, ceil (text_bounds.x1 - text_bounds.x0));
- *max_text_height = MAX (*max_text_height, ceil (text_bounds.y1 - text_bounds.y0));
-
- nautilus_canvas_item_get_bounds_for_layout (icon->item,
- NULL, &y1,
- NULL, &y2);
- *max_bounds_height = MAX (*max_bounds_height, y2 - y1);
- }
-}
-
-static void
-lay_down_icons_vertical (NautilusCanvasContainer *container,
- GList *icons,
- double start_y)
-{
- GList *p, *line_start;
- NautilusCanvasIcon *icon;
- double x, canvas_height;
- GArray *positions;
- IconPositions *position;
- EelDRect icon_bounds;
- EelDRect text_bounds;
- GtkAllocation allocation;
-
- double line_height;
-
- double max_height;
- double max_height_with_borders;
- double max_width;
- double max_width_in_column;
-
- double max_bounds_height;
- double max_bounds_height_with_borders;
-
- double max_text_width, max_icon_width;
- double max_text_height, max_icon_height;
- int height;
- int i;
-
- g_assert (NAUTILUS_IS_CANVAS_CONTAINER (container));
-
- if (icons == NULL) {
- return;
- }
-
- positions = g_array_new (FALSE, FALSE, sizeof (IconPositions));
- gtk_widget_get_allocation (GTK_WIDGET (container), &allocation);
-
- /* Lay out icons a column at a time. */
- canvas_height = CANVAS_HEIGHT(container, allocation);
-
- max_icon_width = max_text_width = 0.0;
- max_icon_height = max_text_height = 0.0;
- max_bounds_height = 0.0;
-
- get_max_icon_dimensions (icons, NULL,
- &max_icon_width, &max_icon_height,
- &max_text_width, &max_text_height,
- &max_bounds_height);
-
- max_width = max_icon_width + max_text_width;
- max_height = MAX (max_icon_height, max_text_height);
- max_height_with_borders = ICON_PAD_TOP + max_height;
-
- max_bounds_height_with_borders = ICON_PAD_TOP + max_bounds_height;
-
- line_height = ICON_PAD_TOP;
- line_start = icons;
- x = 0;
- i = 0;
-
- max_width_in_column = 0.0;
-
- for (p = icons; p != NULL; p = p->next) {
- icon = p->data;
-
- /* If this icon doesn't fit, it's time to lay out the column that's queued up. */
-
- /* We use the bounds height here, since for wrapping we also want to consider
- * overlapping emblems at the bottom. We may wrap a little bit too early since
- * the icon with the max. bounds height may actually not be in the last row, but
- * it is better than visual glitches
- */
- if (line_start != p && line_height + (max_bounds_height_with_borders-1) >= canvas_height ) {
- x += ICON_PAD_LEFT;
-
- /* correctly set (per-column) width */
- for (i = 0; i < (int) positions->len; i++) {
- position = &g_array_index (positions, IconPositions, i);
- position->width = max_width_in_column;
- }
-
- lay_down_one_column (container, line_start, p, x, CONTAINER_PAD_TOP, max_height_with_borders, positions);
-
- /* Advance to next column. */
- x += max_width_in_column + ICON_PAD_RIGHT;
-
- line_height = ICON_PAD_TOP;
- line_start = p;
- i = 0;
-
- max_width_in_column = 0;
- }
-
- icon_bounds = nautilus_canvas_item_get_icon_rectangle (icon->item);
- text_bounds = nautilus_canvas_item_get_text_rectangle (icon->item, TRUE);
-
- max_width_in_column = MAX (max_width_in_column,
- ceil (icon_bounds.x1 - icon_bounds.x0) +
- ceil (text_bounds.x1 - text_bounds.x0));
-
- g_array_set_size (positions, i + 1);
- position = &g_array_index (positions, IconPositions, i++);
-
- position->width = max_width;
- position->height = max_height;
- position->y_offset = ICON_PAD_TOP;
- position->x_offset = ICON_PAD_LEFT;
-
- position->x_offset += max_icon_width - ceil (icon_bounds.x1 - icon_bounds.x0);
-
- height = MAX (ceil (icon_bounds.y1 - icon_bounds.y0), ceil(text_bounds.y1 - text_bounds.y0));
- position->y_offset += (max_height - height) / 2;
-
- /* Add this icon. */
- line_height += max_height_with_borders;
- }
-
- /* Lay down that last column of icons. */
- if (line_start != NULL) {
- x += ICON_PAD_LEFT;
- lay_down_one_column (container, line_start, NULL, x, CONTAINER_PAD_TOP, max_height_with_borders, positions);
- }
-
- g_array_free (positions, TRUE);
-}
-
-static void
snap_position (NautilusCanvasContainer *container,
NautilusCanvasIcon *icon,
int *x, int *y)
@@ -2046,25 +1844,11 @@ lay_down_icons_vertical_desktop (NautilusCanvasContainer *container, GList *icon
static void
lay_down_icons (NautilusCanvasContainer *container, GList *icons, double start_y)
{
- switch (container->details->layout_mode)
- {
- case NAUTILUS_CANVAS_LAYOUT_L_R_T_B:
- case NAUTILUS_CANVAS_LAYOUT_R_L_T_B:
- lay_down_icons_horizontal (container, icons, start_y);
- break;
-
- case NAUTILUS_CANVAS_LAYOUT_T_B_L_R:
- case NAUTILUS_CANVAS_LAYOUT_T_B_R_L:
- if (nautilus_canvas_container_get_is_desktop (container)) {
- lay_down_icons_vertical_desktop (container, icons);
- } else {
- lay_down_icons_vertical (container, icons, start_y);
- }
- break;
-
- default:
- g_assert_not_reached ();
- }
+ if (container->details->is_desktop) {
+ lay_down_icons_vertical_desktop (container, icons);
+ } else {
+ lay_down_icons_horizontal (container, icons, start_y);
+ }
}
static void
@@ -7281,21 +7065,6 @@ nautilus_canvas_container_set_keep_aligned (NautilusCanvasContainer *container,
}
void
-nautilus_canvas_container_set_layout_mode (NautilusCanvasContainer *container,
- NautilusCanvasLayoutMode mode)
-{
- g_return_if_fail (NAUTILUS_IS_CANVAS_CONTAINER (container));
-
- container->details->layout_mode = mode;
- invalidate_labels (container);
-
- container->details->needs_resort = TRUE;
- redo_layout (container);
-
- g_signal_emit (container, signals[LAYOUT_CHANGED], 0);
-}
-
-void
nautilus_canvas_container_set_label_position (NautilusCanvasContainer *container,
NautilusCanvasLabelPosition position)
{
@@ -8362,8 +8131,7 @@ nautilus_canvas_container_is_layout_rtl (NautilusCanvasContainer *container)
{
g_return_val_if_fail (NAUTILUS_IS_CANVAS_CONTAINER (container), 0);
- return container->details->layout_mode == NAUTILUS_CANVAS_LAYOUT_T_B_R_L ||
- container->details->layout_mode == NAUTILUS_CANVAS_LAYOUT_R_L_T_B;
+ return (gtk_widget_get_direction (GTK_WIDGET (container)) == GTK_TEXT_DIR_RTL);
}
gboolean
@@ -8371,8 +8139,8 @@ nautilus_canvas_container_is_layout_vertical (NautilusCanvasContainer *container
{
g_return_val_if_fail (NAUTILUS_IS_CANVAS_CONTAINER (container), FALSE);
- return (container->details->layout_mode == NAUTILUS_CANVAS_LAYOUT_T_B_L_R ||
- container->details->layout_mode == NAUTILUS_CANVAS_LAYOUT_T_B_R_L);
+ /* we only do vertical layout in the desktop nowadays */
+ return container->details->is_desktop;
}
int
diff --git a/libnautilus-private/nautilus-canvas-container.h b/libnautilus-private/nautilus-canvas-container.h
index ba2fe80..5ad6d52 100644
--- a/libnautilus-private/nautilus-canvas-container.h
+++ b/libnautilus-private/nautilus-canvas-container.h
@@ -57,13 +57,6 @@ typedef struct {
} NautilusCanvasPosition;
typedef enum {
- NAUTILUS_CANVAS_LAYOUT_L_R_T_B,
- NAUTILUS_CANVAS_LAYOUT_R_L_T_B,
- NAUTILUS_CANVAS_LAYOUT_T_B_L_R,
- NAUTILUS_CANVAS_LAYOUT_T_B_R_L
-} NautilusCanvasLayoutMode;
-
-typedef enum {
NAUTILUS_CANVAS_LABEL_POSITION_UNDER,
} NautilusCanvasLabelPosition;
@@ -273,8 +266,6 @@ void nautilus_canvas_container_set_auto_layout (Nauti
gboolean nautilus_canvas_container_is_keep_aligned (NautilusCanvasContainer *container);
void nautilus_canvas_container_set_keep_aligned (NautilusCanvasContainer *container,
gboolean keep_aligned);
-void nautilus_canvas_container_set_layout_mode (NautilusCanvasContainer *container,
- NautilusCanvasLayoutMode mode);
void nautilus_canvas_container_set_label_position (NautilusCanvasContainer *container,
NautilusCanvasLabelPosition pos);
void nautilus_canvas_container_sort (NautilusCanvasContainer *container);
diff --git a/libnautilus-private/nautilus-canvas-private.h b/libnautilus-private/nautilus-canvas-private.h
index 9297733..79154db 100644
--- a/libnautilus-private/nautilus-canvas-private.h
+++ b/libnautilus-private/nautilus-canvas-private.h
@@ -210,9 +210,6 @@ struct NautilusCanvasContainerDetails {
gboolean single_click_mode;
gboolean auto_layout;
- /* Layout mode */
- NautilusCanvasLayoutMode layout_mode;
-
/* Label position */
NautilusCanvasLabelPosition label_position;
diff --git a/src/nautilus-canvas-view.c b/src/nautilus-canvas-view.c
index d262a4e..cc5e0e1 100644
--- a/src/nautilus-canvas-view.c
+++ b/src/nautilus-canvas-view.c
@@ -2202,12 +2202,6 @@ nautilus_canvas_view_init (NautilusCanvasView *canvas_view)
canvas_container = create_canvas_container (canvas_view);
- /* Set our default layout mode */
- nautilus_canvas_container_set_layout_mode (canvas_container,
- gtk_widget_get_direction (GTK_WIDGET(canvas_container)) == GTK_TEXT_DIR_RTL ?
- NAUTILUS_CANVAS_LAYOUT_R_L_T_B :
- NAUTILUS_CANVAS_LAYOUT_L_R_T_B);
-
g_signal_connect_swapped (nautilus_preferences,
"changed::" NAUTILUS_PREFERENCES_DEFAULT_SORT_ORDER,
G_CALLBACK (default_sort_order_changed_callback),
@@ -2226,13 +2220,13 @@ nautilus_canvas_view_init (NautilusCanvasView *canvas_view)
G_CALLBACK (text_attribute_names_changed_callback),
canvas_view);
- g_signal_connect_object (get_canvas_container (canvas_view), "handle_netscape_url",
+ g_signal_connect_object (canvas_container, "handle_netscape_url",
G_CALLBACK (canvas_view_handle_netscape_url), canvas_view, 0);
- g_signal_connect_object (get_canvas_container (canvas_view), "handle_uri_list",
+ g_signal_connect_object (canvas_container, "handle_uri_list",
G_CALLBACK (canvas_view_handle_uri_list), canvas_view, 0);
- g_signal_connect_object (get_canvas_container (canvas_view), "handle_text",
+ g_signal_connect_object (canvas_container, "handle_text",
G_CALLBACK (canvas_view_handle_text), canvas_view, 0);
- g_signal_connect_object (get_canvas_container (canvas_view), "handle_raw",
+ g_signal_connect_object (canvas_container, "handle_raw",
G_CALLBACK (canvas_view_handle_raw), canvas_view, 0);
canvas_view->details->clipboard_handler_id =
diff --git a/src/nautilus-desktop-canvas-view.c b/src/nautilus-desktop-canvas-view.c
index 07b2546..dd42c02 100644
--- a/src/nautilus-desktop-canvas-view.c
+++ b/src/nautilus-desktop-canvas-view.c
@@ -582,12 +582,6 @@ nautilus_desktop_canvas_view_init (NautilusDesktopCanvasView *desktop_canvas_vie
nautilus_view_set_show_foreign (NAUTILUS_VIEW (desktop_canvas_view),
FALSE);
- /* Set our default layout mode */
- nautilus_canvas_container_set_layout_mode (canvas_container,
- gtk_widget_get_direction (GTK_WIDGET(canvas_container)) == GTK_TEXT_DIR_RTL ?
- NAUTILUS_CANVAS_LAYOUT_T_B_R_L :
- NAUTILUS_CANVAS_LAYOUT_T_B_L_R);
-
g_signal_connect_object (canvas_container, "middle_click",
G_CALLBACK (nautilus_desktop_canvas_view_handle_middle_click), desktop_canvas_view, 0);
g_signal_connect_object (desktop_canvas_view, "realize",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]