summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Borelli <pborelli@gnome.org>2010-04-17 16:57:25 +0200
committerPaolo Borelli <pborelli@gnome.org>2010-04-17 17:02:50 +0200
commit32327339b335e71f661f5f51c6f66ddb95cbd099 (patch)
treeccac62ce602542d80f9a1e366adadb2616bdc7e0
parent90c1b707ce4ab0a96dc4200537ef9fae17e45e60 (diff)
downloadnautilus-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.c8
-rw-r--r--src/nautilus-navigation-window.c17
-rw-r--r--src/nautilus-spatial-window.c15
-rw-r--r--src/nautilus-window-private.h10
-rw-r--r--src/nautilus-window.c11
-rw-r--r--src/nautilus-window.h1
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);