diff options
author | Paolo Borelli <pborelli@gnome.org> | 2010-04-17 16:57:25 +0200 |
---|---|---|
committer | Paolo Borelli <pborelli@gnome.org> | 2010-04-17 17:02:50 +0200 |
commit | 32327339b335e71f661f5f51c6f66ddb95cbd099 (patch) | |
tree | ccac62ce602542d80f9a1e366adadb2616bdc7e0 | |
parent | 90c1b707ce4ab0a96dc4200537ef9fae17e45e60 (diff) | |
download | nautilus-32327339b335e71f661f5f51c6f66ddb95cbd099.tar.gz |
Do not use "if (spatial) ..." in window superclass
Delegate behavior specific to the window type to an appopriate subclass
method.
-rw-r--r-- | src/nautilus-application.c | 8 | ||||
-rw-r--r-- | src/nautilus-navigation-window.c | 17 | ||||
-rw-r--r-- | src/nautilus-spatial-window.c | 15 | ||||
-rw-r--r-- | src/nautilus-window-private.h | 10 | ||||
-rw-r--r-- | src/nautilus-window.c | 11 | ||||
-rw-r--r-- | src/nautilus-window.h | 1 |
6 files changed, 41 insertions, 21 deletions
diff --git a/src/nautilus-application.c b/src/nautilus-application.c index 26b2cf9d8..81beb48ca 100644 --- a/src/nautilus-application.c +++ b/src/nautilus-application.c @@ -1413,8 +1413,8 @@ nautilus_application_create_navigation_window (NautilusApplication *application, eel_gtk_window_set_initial_geometry_from_string (GTK_WINDOW (window), geometry_string, - NAUTILUS_WINDOW_MIN_WIDTH, - NAUTILUS_WINDOW_MIN_HEIGHT, + NAUTILUS_NAVIGATION_WINDOW_MIN_WIDTH, + NAUTILUS_NAVIGATION_WINDOW_MIN_HEIGHT, another_navigation_window_already_showing (window)); } g_free (geometry_string); @@ -1971,8 +1971,8 @@ nautilus_application_load_session (NautilusApplication *application) eel_gtk_window_set_initial_geometry_from_string (GTK_WINDOW (window), geometry, - NAUTILUS_WINDOW_MIN_WIDTH, - NAUTILUS_WINDOW_MIN_HEIGHT, + NAUTILUS_NAVIGATION_WINDOW_MIN_WIDTH, + NAUTILUS_NAVIGATION_WINDOW_MIN_HEIGHT, FALSE); } xmlFree (geometry); diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c index 9ad8213b3..7233d102d 100644 --- a/src/nautilus-navigation-window.c +++ b/src/nautilus-navigation-window.c @@ -1113,15 +1113,25 @@ nautilus_navigation_window_save_geometry (NautilusNavigationWindow *window) } } - - static void real_window_close (NautilusWindow *window) { nautilus_navigation_window_save_geometry (NAUTILUS_NAVIGATION_WINDOW (window)); } -static void +static void +real_get_min_size (NautilusWindow *window, + guint *min_width, guint *min_height) +{ + if (min_width) { + *min_width = NAUTILUS_NAVIGATION_WINDOW_MIN_WIDTH; + } + if (min_height) { + *min_height = NAUTILUS_NAVIGATION_WINDOW_MIN_HEIGHT; + } +} + +static void real_get_default_size (NautilusWindow *window, guint *default_width, guint *default_height) { @@ -1187,6 +1197,7 @@ nautilus_navigation_window_class_init (NautilusNavigationWindowClass *class) NAUTILUS_WINDOW_CLASS (class)->prompt_for_location = real_prompt_for_location; NAUTILUS_WINDOW_CLASS (class)->sync_title = real_sync_title; NAUTILUS_WINDOW_CLASS (class)->get_icon = real_get_icon; + NAUTILUS_WINDOW_CLASS (class)->get_min_size = real_get_min_size; NAUTILUS_WINDOW_CLASS (class)->get_default_size = real_get_default_size; NAUTILUS_WINDOW_CLASS (class)->close = real_window_close; diff --git a/src/nautilus-spatial-window.c b/src/nautilus-spatial-window.c index 169fe8748..d68c6acc8 100644 --- a/src/nautilus-spatial-window.c +++ b/src/nautilus-spatial-window.c @@ -411,7 +411,19 @@ real_sync_title (NautilusWindow *window, sync_window_title (window); } -static void +static void +real_get_min_size (NautilusWindow *window, + guint *min_width, guint *min_height) +{ + if (min_width) { + *min_width = NAUTILUS_SPATIAL_WINDOW_MIN_WIDTH; + } + if (min_height) { + *min_height = NAUTILUS_SPATIAL_WINDOW_MIN_HEIGHT; + } +} + +static void real_get_default_size (NautilusWindow *window, guint *default_width, guint *default_height) { @@ -1099,6 +1111,7 @@ nautilus_spatial_window_class_init (NautilusSpatialWindowClass *class) real_get_icon; NAUTILUS_WINDOW_CLASS (class)->sync_title = real_sync_title; + NAUTILUS_WINDOW_CLASS(class)->get_min_size = real_get_min_size; NAUTILUS_WINDOW_CLASS(class)->get_default_size = real_get_default_size; NAUTILUS_WINDOW_CLASS(class)->sync_allow_stop = diff --git a/src/nautilus-window-private.h b/src/nautilus-window-private.h index d99a13e43..d9ed0e412 100644 --- a/src/nautilus-window-private.h +++ b/src/nautilus-window-private.h @@ -142,20 +142,20 @@ struct _NautilusNavigationWindowDetails { #define NAUTILUS_COMMAND_ZOOM_NORMAL "/commands/Zoom Normal" /* window geometry */ -/* These are very small, and a Nautilus window at this tiny size is *almost* +/* Min values are very small, and a Nautilus window at this tiny size is *almost* * completely unusable. However, if all the extra bits (sidebar, location bar, etc) * are turned off, you can see an icon or two at this size. See bug 5946. */ -#define NAUTILUS_WINDOW_MIN_WIDTH 200 -#define NAUTILUS_WINDOW_MIN_HEIGHT 200 #define NAUTILUS_SPATIAL_WINDOW_MIN_WIDTH 100 #define NAUTILUS_SPATIAL_WINDOW_MIN_HEIGHT 100 #define NAUTILUS_SPATIAL_WINDOW_DEFAULT_WIDTH 500 #define NAUTILUS_SPATIAL_WINDOW_DEFAULT_HEIGHT 300 -#define NAUTILUS_NAVIGATION_WINDOW_DEFAULT_WIDTH 800 -#define NAUTILUS_NAVIGATION_WINDOW_DEFAULT_HEIGHT 550 +#define NAUTILUS_NAVIGATION_WINDOW_MIN_WIDTH 200 +#define NAUTILUS_NAVIGATION_WINDOW_MIN_HEIGHT 200 +#define NAUTILUS_NAVIGATION_WINDOW_DEFAULT_WIDTH 800 +#define NAUTILUS_NAVIGATION_WINDOW_DEFAULT_HEIGHT 550 typedef void (*NautilusBookmarkFailedCallback) (NautilusWindow *window, NautilusBookmark *bookmark); diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 456309976..854fcf29a 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -496,14 +496,9 @@ nautilus_window_set_initial_window_geometry (NautilusWindow *window) max_width_for_screen = get_max_forced_width (screen); max_height_for_screen = get_max_forced_height (screen); - if (NAUTILUS_IS_SPATIAL_WINDOW (window)) { - min_width = NAUTILUS_SPATIAL_WINDOW_MIN_WIDTH; - min_height = NAUTILUS_SPATIAL_WINDOW_MIN_HEIGHT; - } else { - min_width = NAUTILUS_WINDOW_MIN_WIDTH; - min_height = NAUTILUS_WINDOW_MIN_HEIGHT; - } - + EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window, + get_min_size, (window, &min_width, &min_height)); + gtk_widget_set_size_request (GTK_WIDGET (window), MIN (min_width, max_width_for_screen), diff --git a/src/nautilus-window.h b/src/nautilus-window.h index 2c9e3c1b1..e81fea7e0 100644 --- a/src/nautilus-window.h +++ b/src/nautilus-window.h @@ -99,6 +99,7 @@ typedef struct { void (* set_allow_up) (NautilusWindow *window, gboolean allow); void (* reload) (NautilusWindow *window); void (* prompt_for_location) (NautilusWindow *window, const char *initial); + void (* get_min_size) (NautilusWindow *window, guint *default_width, guint *default_height); void (* get_default_size) (NautilusWindow *window, guint *default_width, guint *default_height); void (* close) (NautilusWindow *window); |