summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Engber <engber@src.gnome.org>2000-06-27 01:17:44 +0000
committerMike Engber <engber@src.gnome.org>2000-06-27 01:17:44 +0000
commitc108999dc357b83621676ffa8b16f228005adb88 (patch)
tree67af889518891b7133792055d199ea864615e987
parenta77ea1f8fab0cd6e4e6414be78d282f8deb8cb00 (diff)
downloadnautilus-c108999dc357b83621676ffa8b16f228005adb88.tar.gz
Added report_zoom_parameters_changed to the zoomable interface. This
* libnautilus-extensions/nautilus-gtk-extensions.c: (nautilus_gtk_marshal_NONE__DOUBLE_DOUBLE_DOUBLE): * libnautilus-extensions/nautilus-gtk-extensions.h: * libnautilus/nautilus-view-component.idl: * libnautilus/nautilus-zoomable.c: (nautilus_zoomable_set_parameters), (nautilus_zoomable_set_zoom_level): * libnautilus/nautilus-zoomable.h: * src/file-manager/fm-directory-view.c: (fm_directory_view_set_zoom_level), (fm_directory_view_set_zoom_parameters): * src/file-manager/fm-directory-view.h: * src/file-manager/fm-icon-view.c: (fm_icon_view_begin_loading), (fm_icon_view_set_zoom_level), (fm_icon_view_init_zoom_params), (fm_icon_view_bump_zoom_level), (fm_icon_view_zoom_to_level), (fm_icon_view_restore_default_zoom_level): * src/file-manager/fm-list-view.c: (fm_list_view_bump_zoom_level), (fm_list_view_zoom_to_level), (fm_list_view_restore_default_zoom_level), (fm_list_view_begin_loading), (fm_list_view_set_zoom_level), (fm_list_view_init_zoom_params): * src/nautilus-view-frame-private.h: * src/nautilus-view-frame.c: (nautilus_view_frame_initialize_class), (nautilus_view_frame_zoom_parameters_changed): * src/nautilus-view-frame.h: * src/nautilus-window.c: (nautilus_window_zoom_level_changed_callback), (nautilus_window_zoom_parameters_changed_callback), (nautilus_window_connect_view): * src/nautilus-zoom-control.c: (nautilus_zoom_control_initialize), (draw_number_and_disable_arrows), (zoom_menu_callback), (create_zoom_menu_item), (nautilus_zoom_control_button_press_event), (nautilus_zoom_control_set_zoom_level), (nautilus_zoom_control_set_min_zoom_level), (nautilus_zoom_control_set_max_zoom_level), (nautilus_zoom_control_get_zoom_level), (nautilus_zoom_control_get_min_zoom_level), (nautilus_zoom_control_get_max_zoom_level): * src/nautilus-zoom-control.h: * src/nautilus-zoomable-frame-corba.c: (impl_Nautilus_ZoomableFrame_report_zoom_level_changed), (impl_Nautilus_ZoomableFrame_report_zoom_parameters_changed): Added report_zoom_parameters_changed to the zoomable interface. This allows the zoom control to get min/max from the zoomable (as opposed to hard coding in values) Also fixed the zoom control to now use just doubles. Renamed the zoom_level_changed message to be report_zoom_level_changed in accordance with convention.
-rw-r--r--ChangeLog53
-rw-r--r--libnautilus-extensions/nautilus-gtk-extensions.c14
-rw-r--r--libnautilus-extensions/nautilus-gtk-extensions.h4
-rw-r--r--libnautilus-private/nautilus-gtk-extensions.c14
-rw-r--r--libnautilus-private/nautilus-gtk-extensions.h4
-rw-r--r--libnautilus/nautilus-view-component.idl6
-rw-r--r--libnautilus/nautilus-zoomable.c33
-rw-r--r--libnautilus/nautilus-zoomable.h26
-rw-r--r--src/file-manager/fm-directory-view.c15
-rw-r--r--src/file-manager/fm-directory-view.h6
-rw-r--r--src/file-manager/fm-icon-view.c31
-rw-r--r--src/file-manager/fm-list-view.c37
-rw-r--r--src/nautilus-navigation-window.c22
-rw-r--r--src/nautilus-object-window.c22
-rw-r--r--src/nautilus-spatial-window.c22
-rw-r--r--src/nautilus-view-frame-private.h6
-rw-r--r--src/nautilus-view-frame.c19
-rw-r--r--src/nautilus-view-frame.h4
-rw-r--r--src/nautilus-window.c22
-rw-r--r--src/nautilus-zoom-control.c105
-rw-r--r--src/nautilus-zoom-control.h9
-rw-r--r--src/nautilus-zoomable-frame-corba.c28
22 files changed, 385 insertions, 117 deletions
diff --git a/ChangeLog b/ChangeLog
index 84d866507..d71141fe5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,56 @@
+2000-06-26 Michael Engber <engber@eazel.com>
+
+ * libnautilus-extensions/nautilus-gtk-extensions.c:
+ (nautilus_gtk_marshal_NONE__DOUBLE_DOUBLE_DOUBLE):
+ * libnautilus-extensions/nautilus-gtk-extensions.h:
+ * libnautilus/nautilus-view-component.idl:
+ * libnautilus/nautilus-zoomable.c:
+ (nautilus_zoomable_set_parameters),
+ (nautilus_zoomable_set_zoom_level):
+ * libnautilus/nautilus-zoomable.h:
+ * src/file-manager/fm-directory-view.c:
+ (fm_directory_view_set_zoom_level),
+ (fm_directory_view_set_zoom_parameters):
+ * src/file-manager/fm-directory-view.h:
+ * src/file-manager/fm-icon-view.c: (fm_icon_view_begin_loading),
+ (fm_icon_view_set_zoom_level), (fm_icon_view_init_zoom_params),
+ (fm_icon_view_bump_zoom_level), (fm_icon_view_zoom_to_level),
+ (fm_icon_view_restore_default_zoom_level):
+ * src/file-manager/fm-list-view.c: (fm_list_view_bump_zoom_level),
+ (fm_list_view_zoom_to_level),
+ (fm_list_view_restore_default_zoom_level),
+ (fm_list_view_begin_loading), (fm_list_view_set_zoom_level),
+ (fm_list_view_init_zoom_params):
+ * src/nautilus-view-frame-private.h:
+ * src/nautilus-view-frame.c:
+ (nautilus_view_frame_initialize_class),
+ (nautilus_view_frame_zoom_parameters_changed):
+ * src/nautilus-view-frame.h:
+ * src/nautilus-window.c:
+ (nautilus_window_zoom_level_changed_callback),
+ (nautilus_window_zoom_parameters_changed_callback),
+ (nautilus_window_connect_view):
+ * src/nautilus-zoom-control.c: (nautilus_zoom_control_initialize),
+ (draw_number_and_disable_arrows), (zoom_menu_callback),
+ (create_zoom_menu_item),
+ (nautilus_zoom_control_button_press_event),
+ (nautilus_zoom_control_set_zoom_level),
+ (nautilus_zoom_control_set_min_zoom_level),
+ (nautilus_zoom_control_set_max_zoom_level),
+ (nautilus_zoom_control_get_zoom_level),
+ (nautilus_zoom_control_get_min_zoom_level),
+ (nautilus_zoom_control_get_max_zoom_level):
+ * src/nautilus-zoom-control.h:
+ * src/nautilus-zoomable-frame-corba.c:
+ (impl_Nautilus_ZoomableFrame_report_zoom_level_changed),
+ (impl_Nautilus_ZoomableFrame_report_zoom_parameters_changed):
+ Added report_zoom_parameters_changed to the zoomable
+ interface. This allows the zoom control to get min/max
+ from the zoomable (as opposed to hard coding in values)
+ Also fixed the zoom control to now use just doubles.
+ Renamed the zoom_level_changed message to be report_zoom_level_changed
+ in accordance with convention.
+
2000-06-26 John Sullivan <sullivan@eazel.com>
Finished task 876 (owner and group should be changeable
diff --git a/libnautilus-extensions/nautilus-gtk-extensions.c b/libnautilus-extensions/nautilus-gtk-extensions.c
index 7870387ee..2fbe550c6 100644
--- a/libnautilus-extensions/nautilus-gtk-extensions.c
+++ b/libnautilus-extensions/nautilus-gtk-extensions.c
@@ -515,6 +515,20 @@ nautilus_gtk_marshal_NONE__DOUBLE (GtkObject *object,
}
void
+nautilus_gtk_marshal_NONE__DOUBLE_DOUBLE_DOUBLE (GtkObject *object,
+ GtkSignalFunc func,
+ gpointer func_data,
+ GtkArg *args)
+{
+ (* (void (*)(GtkObject *, double, double, double, gpointer)) func)
+ (object,
+ GTK_VALUE_DOUBLE (args[0]),
+ GTK_VALUE_DOUBLE (args[1]),
+ GTK_VALUE_DOUBLE (args[2]),
+ func_data);
+}
+
+void
nautilus_gtk_marshal_POINTER__NONE (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
diff --git a/libnautilus-extensions/nautilus-gtk-extensions.h b/libnautilus-extensions/nautilus-gtk-extensions.h
index 58182a8e0..9182a8ada 100644
--- a/libnautilus-extensions/nautilus-gtk-extensions.h
+++ b/libnautilus-extensions/nautilus-gtk-extensions.h
@@ -131,6 +131,10 @@ void nautilus_gtk_marshal_NONE__DOUBLE
GtkSignalFunc func,
gpointer func_data,
GtkArg *args);
+void nautilus_gtk_marshal_NONE__DOUBLE_DOUBLE_DOUBLE (GtkObject *object,
+ GtkSignalFunc func,
+ gpointer func_data,
+ GtkArg *args);
void nautilus_gtk_marshal_NONE__INT_INT_INT (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
diff --git a/libnautilus-private/nautilus-gtk-extensions.c b/libnautilus-private/nautilus-gtk-extensions.c
index 7870387ee..2fbe550c6 100644
--- a/libnautilus-private/nautilus-gtk-extensions.c
+++ b/libnautilus-private/nautilus-gtk-extensions.c
@@ -515,6 +515,20 @@ nautilus_gtk_marshal_NONE__DOUBLE (GtkObject *object,
}
void
+nautilus_gtk_marshal_NONE__DOUBLE_DOUBLE_DOUBLE (GtkObject *object,
+ GtkSignalFunc func,
+ gpointer func_data,
+ GtkArg *args)
+{
+ (* (void (*)(GtkObject *, double, double, double, gpointer)) func)
+ (object,
+ GTK_VALUE_DOUBLE (args[0]),
+ GTK_VALUE_DOUBLE (args[1]),
+ GTK_VALUE_DOUBLE (args[2]),
+ func_data);
+}
+
+void
nautilus_gtk_marshal_POINTER__NONE (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
diff --git a/libnautilus-private/nautilus-gtk-extensions.h b/libnautilus-private/nautilus-gtk-extensions.h
index 58182a8e0..9182a8ada 100644
--- a/libnautilus-private/nautilus-gtk-extensions.h
+++ b/libnautilus-private/nautilus-gtk-extensions.h
@@ -131,6 +131,10 @@ void nautilus_gtk_marshal_NONE__DOUBLE
GtkSignalFunc func,
gpointer func_data,
GtkArg *args);
+void nautilus_gtk_marshal_NONE__DOUBLE_DOUBLE_DOUBLE (GtkObject *object,
+ GtkSignalFunc func,
+ gpointer func_data,
+ GtkArg *args);
void nautilus_gtk_marshal_NONE__INT_INT_INT (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
diff --git a/libnautilus/nautilus-view-component.idl b/libnautilus/nautilus-view-component.idl
index f1196fd32..2d98ebca8 100644
--- a/libnautilus/nautilus-view-component.idl
+++ b/libnautilus/nautilus-view-component.idl
@@ -124,8 +124,12 @@ module Nautilus {
* zoom_level_changed whenever it changes the zoom level (on
* its own or due to calls from the zoomable interface).
*/
+
interface ZoomableFrame : ::Bonobo::Unknown {
- oneway void zoom_level_changed (in double zoom_level);
+ oneway void report_zoom_level_changed (in double zoom_level);
+ oneway void report_zoom_parameters_changed (in double zoom_level,
+ in double min_zoom_level,
+ in double max_zoom_level);
};
};
diff --git a/libnautilus/nautilus-zoomable.c b/libnautilus/nautilus-zoomable.c
index 6be65ffbe..609bc3c0f 100644
--- a/libnautilus/nautilus-zoomable.c
+++ b/libnautilus/nautilus-zoomable.c
@@ -458,6 +458,37 @@ nautilus_zoomable_ensure_zoomable_frame (NautilusZoomable *view)
}
void
+nautilus_zoomable_set_parameters (NautilusZoomable *view,
+ double zoom_level,
+ double min_zoom_level,
+ double max_zoom_level)
+{
+ CORBA_Environment ev;
+
+ g_return_if_fail (NAUTILUS_IS_ZOOMABLE (view));
+
+ CORBA_exception_init (&ev);
+
+ view->details->zoom_level = zoom_level;
+ view->details->min_zoom_level = min_zoom_level;
+ view->details->max_zoom_level = max_zoom_level;
+
+ if (nautilus_zoomable_ensure_zoomable_frame (view)) {
+ Nautilus_ZoomableFrame_report_zoom_parameters_changed (view->details->zoomable_frame,
+ view->details->zoom_level,
+ view->details->min_zoom_level,
+ view->details->max_zoom_level,
+ &ev);
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ CORBA_Object_release (view->details->zoomable_frame, &ev);
+ view->details->zoomable_frame = CORBA_OBJECT_NIL;
+ }
+ }
+
+ CORBA_exception_free (&ev);
+}
+
+void
nautilus_zoomable_set_zoom_level (NautilusZoomable *view,
double zoom_level)
{
@@ -470,7 +501,7 @@ nautilus_zoomable_set_zoom_level (NautilusZoomable *view,
view->details->zoom_level = zoom_level;
if (nautilus_zoomable_ensure_zoomable_frame (view)) {
- Nautilus_ZoomableFrame_zoom_level_changed (view->details->zoomable_frame, zoom_level, &ev);
+ Nautilus_ZoomableFrame_report_zoom_level_changed (view->details->zoomable_frame, zoom_level, &ev);
if (ev._major != CORBA_NO_EXCEPTION) {
CORBA_Object_release (view->details->zoomable_frame, &ev);
view->details->zoomable_frame = CORBA_OBJECT_NIL;
diff --git a/libnautilus/nautilus-zoomable.h b/libnautilus/nautilus-zoomable.h
index 1bcc6eafa..1b17b1e6c 100644
--- a/libnautilus/nautilus-zoomable.h
+++ b/libnautilus/nautilus-zoomable.h
@@ -69,18 +69,22 @@ struct NautilusZoomable
NautilusZoomableDetails *details;
};
-GtkType nautilus_zoomable_get_type (void);
-NautilusZoomable *nautilus_zoomable_new (GtkWidget *widget,
- gdouble min_zoom_level,
- gdouble max_zoom_level,
+GtkType nautilus_zoomable_get_type (void);
+NautilusZoomable *nautilus_zoomable_new (GtkWidget *widget,
+ gdouble min_zoom_level,
+ gdouble max_zoom_level,
gboolean is_continuous);
-NautilusZoomable *nautilus_zoomable_new_from_bonobo_control (BonoboControl *bonobo_control,
- gdouble min_zoom_level,
- gdouble max_zoom_level,
- gboolean is_continuous);
-void nautilus_zoomable_set_zoom_level (NautilusZoomable *view,
- gdouble zoom_level);
-BonoboControl *nautilus_zoomable_get_bonobo_control (NautilusZoomable *view);
+NautilusZoomable *nautilus_zoomable_new_from_bonobo_control (BonoboControl *bonobo_control,
+ gdouble min_zoom_level,
+ gdouble max_zoom_level,
+ gboolean is_continuous);
+void nautilus_zoomable_set_parameters (NautilusZoomable *view,
+ double zoom_level,
+ double min_zoom_level,
+ double max_zoom_level);
+void nautilus_zoomable_set_zoom_level (NautilusZoomable *view,
+ gdouble zoom_level);
+BonoboControl *nautilus_zoomable_get_bonobo_control (NautilusZoomable *view);
#ifdef __cplusplus
}
diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c
index 083c7635d..595edceab 100644
--- a/src/file-manager/fm-directory-view.c
+++ b/src/file-manager/fm-directory-view.c
@@ -1425,13 +1425,26 @@ fm_directory_view_zoom_to_level (FMDirectoryView *view, int zoom_level)
void
-fm_directory_view_report_zoom_level_changed (FMDirectoryView *view, int zoom_level)
+fm_directory_view_set_zoom_level (FMDirectoryView *view, int zoom_level)
{
g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
nautilus_zoomable_set_zoom_level (view->details->zoomable,
(double) nautilus_get_icon_size_for_zoom_level (zoom_level) / NAUTILUS_ICON_SIZE_STANDARD);
}
+void
+fm_directory_view_set_zoom_parameters (FMDirectoryView *view,
+ int zoom_level,
+ int min_zoom_level,
+ int max_zoom_level)
+{
+ g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+ nautilus_zoomable_set_parameters (view->details->zoomable,
+ (double) nautilus_get_icon_size_for_zoom_level (zoom_level) / NAUTILUS_ICON_SIZE_STANDARD,
+ (double) nautilus_get_icon_size_for_zoom_level (min_zoom_level) / NAUTILUS_ICON_SIZE_STANDARD,
+ (double) nautilus_get_icon_size_for_zoom_level (max_zoom_level) / NAUTILUS_ICON_SIZE_STANDARD);
+}
+
/**
* fm_directory_view_restore_default_zoom_level:
*
diff --git a/src/file-manager/fm-directory-view.h b/src/file-manager/fm-directory-view.h
index 057413210..63d9b4635 100644
--- a/src/file-manager/fm-directory-view.h
+++ b/src/file-manager/fm-directory-view.h
@@ -232,8 +232,12 @@ void fm_directory_view_bump_zoom_level (FMDirectory
int zoom_increment);
void fm_directory_view_zoom_to_level (FMDirectoryView *view,
int zoom_level);
-void fm_directory_view_report_zoom_level_changed (FMDirectoryView *view,
+void fm_directory_view_set_zoom_level (FMDirectoryView *view,
int zoom_level);
+void fm_directory_view_set_zoom_parameters (FMDirectoryView *view,
+ int zoom_level,
+ int min_zoom_level,
+ int max_zoom_level);
void fm_directory_view_restore_default_zoom_level (FMDirectoryView *view);
void fm_directory_view_select_all (FMDirectoryView *view);
void fm_directory_view_set_selection (FMDirectoryView *view,
diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c
index 32bd58bcb..adcc02184 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -80,7 +80,9 @@ static void fm_icon_view_initialize (FMIconView
static void fm_icon_view_initialize_class (FMIconViewClass *klass);
static void fm_icon_view_set_zoom_level (FMIconView *view,
NautilusZoomLevel new_level,
- gboolean always_report_new_level);
+ gboolean notify_directory_view);
+static void fm_icon_view_init_zoom_params (FMIconView *view,
+ NautilusZoomLevel zoom_level);
static void text_attribute_names_changed_callback (gpointer user_data);
NAUTILUS_DEFINE_CLASS_BOILERPLATE (FMIconView, fm_icon_view, FM_TYPE_DIRECTORY_VIEW);
@@ -644,7 +646,7 @@ fm_icon_view_begin_loading (FMDirectoryView *view)
(directory,
NAUTILUS_METADATA_KEY_ICON_VIEW_ZOOM_LEVEL,
icon_view->details->default_zoom_level);
- fm_icon_view_set_zoom_level (icon_view, level, TRUE);
+ fm_icon_view_init_zoom_params (icon_view, level);
/* Set the sort mode from the metadata.
* It's OK not to resort the icons because the
@@ -686,7 +688,7 @@ fm_icon_view_get_zoom_level (FMIconView *view)
static void
fm_icon_view_set_zoom_level (FMIconView *view,
NautilusZoomLevel new_level,
- gboolean always_report_new_level)
+ gboolean notify_directory_view)
{
NautilusIconContainer *icon_container;
@@ -696,9 +698,6 @@ fm_icon_view_set_zoom_level (FMIconView *view,
icon_container = get_icon_container (view);
if (nautilus_icon_container_get_zoom_level (icon_container) == new_level) {
- if (always_report_new_level) {
- fm_directory_view_report_zoom_level_changed(&view->parent, new_level);
- }
return;
}
@@ -709,7 +708,9 @@ fm_icon_view_set_zoom_level (FMIconView *view,
new_level);
nautilus_icon_container_set_zoom_level (icon_container, new_level);
- fm_directory_view_report_zoom_level_changed(&view->parent, new_level);
+ if (notify_directory_view) {
+ fm_directory_view_set_zoom_level (&view->parent, new_level);
+ }
/* Reset default to new level; this way any change in zoom level
* will "stick" until the user visits a directory that had its zoom
@@ -718,6 +719,16 @@ fm_icon_view_set_zoom_level (FMIconView *view,
view->details->default_zoom_level = new_level;
}
+static void
+fm_icon_view_init_zoom_params (FMIconView *view,
+ NautilusZoomLevel zoom_level)
+{
+ fm_icon_view_set_zoom_level (view, zoom_level, FALSE);
+ fm_directory_view_set_zoom_parameters (&view->parent,
+ zoom_level,
+ NAUTILUS_ZOOM_LEVEL_SMALLEST,
+ NAUTILUS_ZOOM_LEVEL_LARGEST);
+}
static void
fm_icon_view_bump_zoom_level (FMDirectoryView *view, int zoom_increment)
@@ -729,7 +740,7 @@ fm_icon_view_bump_zoom_level (FMDirectoryView *view, int zoom_increment)
icon_view = FM_ICON_VIEW (view);
new_level = fm_icon_view_get_zoom_level (icon_view) + zoom_increment;
- fm_icon_view_set_zoom_level(icon_view, new_level, FALSE);
+ fm_icon_view_set_zoom_level(icon_view, new_level, TRUE);
}
static void
@@ -740,7 +751,7 @@ fm_icon_view_zoom_to_level (FMDirectoryView *view, int zoom_level)
g_return_if_fail (FM_IS_ICON_VIEW (view));
icon_view = FM_ICON_VIEW (view);
- fm_icon_view_set_zoom_level(icon_view, zoom_level, FALSE);
+ fm_icon_view_set_zoom_level(icon_view, zoom_level, TRUE);
}
static void
@@ -751,7 +762,7 @@ fm_icon_view_restore_default_zoom_level (FMDirectoryView *view)
g_return_if_fail (FM_IS_ICON_VIEW (view));
icon_view = FM_ICON_VIEW (view);
- fm_icon_view_set_zoom_level(icon_view, NAUTILUS_ZOOM_LEVEL_STANDARD, FALSE);
+ fm_icon_view_set_zoom_level(icon_view, NAUTILUS_ZOOM_LEVEL_STANDARD, TRUE);
}
static gboolean
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index 2a359f0f1..eb4c38d10 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -142,7 +142,9 @@ static void fm_list_view_select_all (FMDirectoryVi
static void fm_list_view_set_selection (FMDirectoryView *view, GList *selection);
static void fm_list_view_set_zoom_level (FMListView *list_view,
NautilusZoomLevel new_level,
- gboolean always_report_new_level);
+ gboolean notify_directory_view);
+static void fm_list_view_init_zoom_params (FMListView *list_view,
+ NautilusZoomLevel zoom_level);
static void fm_list_view_sort_items (FMListView *list_view,
int column,
gboolean reversed);
@@ -853,7 +855,7 @@ fm_list_view_bump_zoom_level (FMDirectoryView *view, int zoom_increment)
NAUTILUS_ZOOM_LEVEL_LARGEST);
}
- fm_list_view_set_zoom_level (list_view, new_level, FALSE);
+ fm_list_view_set_zoom_level (list_view, new_level, TRUE);
}
static void
@@ -865,7 +867,7 @@ fm_list_view_zoom_to_level (FMDirectoryView *view, int zoom_level)
list_view = FM_LIST_VIEW (view);
- fm_list_view_set_zoom_level (list_view, zoom_level, FALSE);
+ fm_list_view_set_zoom_level (list_view, zoom_level, TRUE);
}
static void
@@ -878,7 +880,7 @@ fm_list_view_restore_default_zoom_level (FMDirectoryView *view)
list_view = FM_LIST_VIEW (view);
/* The list view is using NAUTILUS_ZOOM_LEVEL_SMALLER as default */
- fm_list_view_set_zoom_level (list_view, NAUTILUS_ZOOM_LEVEL_SMALLER, FALSE);
+ fm_list_view_set_zoom_level (list_view, NAUTILUS_ZOOM_LEVEL_SMALLER, TRUE);
}
static gboolean
@@ -940,13 +942,12 @@ fm_list_view_begin_loading (FMDirectoryView *view)
nautilus_connect_background_to_directory_metadata (GTK_WIDGET (get_list (list_view)),
directory);
- fm_list_view_set_zoom_level (
+ fm_list_view_init_zoom_params (
list_view,
nautilus_directory_get_integer_metadata (
directory,
NAUTILUS_METADATA_KEY_LIST_VIEW_ZOOM_LEVEL,
- list_view->details->default_zoom_level),
- TRUE);
+ list_view->details->default_zoom_level));
fm_list_view_sort_items (
list_view,
@@ -1074,7 +1075,7 @@ fm_list_view_get_zoom_level (FMListView *list_view)
static void
fm_list_view_set_zoom_level (FMListView *list_view,
NautilusZoomLevel new_level,
- gboolean always_report_new_level)
+ gboolean notify_directory_view)
{
GtkCList *clist;
int row;
@@ -1085,9 +1086,6 @@ fm_list_view_set_zoom_level (FMListView *list_view,
new_level <= NAUTILUS_ZOOM_LEVEL_LARGEST);
if (new_level == fm_list_view_get_zoom_level (list_view)) {
- if (always_report_new_level) {
- fm_directory_view_report_zoom_level_changed(&list_view->parent, new_level);
- }
return;
}
@@ -1097,8 +1095,10 @@ fm_list_view_set_zoom_level (FMListView *list_view,
NAUTILUS_METADATA_KEY_LIST_VIEW_ZOOM_LEVEL,
list_view->details->default_zoom_level,
new_level);
-
- fm_directory_view_report_zoom_level_changed(&list_view->parent, new_level);
+
+ if (notify_directory_view) {
+ fm_directory_view_set_zoom_level (&list_view->parent, new_level);
+ }
/* Reset default to new level; this way any change in zoom level
* will "stick" until the user visits a directory that had its zoom
@@ -1138,6 +1138,17 @@ fm_list_view_set_zoom_level (FMListView *list_view,
}
static void
+fm_list_view_init_zoom_params (FMListView *view,
+ NautilusZoomLevel zoom_level)
+{
+ fm_list_view_set_zoom_level (view, zoom_level, FALSE);
+ fm_directory_view_set_zoom_parameters (&view->parent,
+ zoom_level,
+ NAUTILUS_ZOOM_LEVEL_SMALLEST,
+ NAUTILUS_ZOOM_LEVEL_LARGEST);
+}
+
+static void
fm_list_view_reset_row_height (FMListView *list_view)
{
gtk_clist_set_row_height (GTK_CLIST (get_list (list_view)),
diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c
index 3f803e272..1e5340e83 100644
--- a/src/nautilus-navigation-window.c
+++ b/src/nautilus-navigation-window.c
@@ -1135,8 +1135,25 @@ nautilus_window_zoom_level_changed_callback (NautilusViewFrame *view,
nautilus_zoom_control_set_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), zoom_level);
/* We rely on the initial zoom_level_change signal to inform us that the
- * view-frame is showing something zoombale (i.e. we need a zoom control).
- */
+ * view-frame is showing a new zoomable.
+ */
+ gtk_widget_show (window->zoom_control);
+}
+
+static void
+nautilus_window_zoom_parameters_changed_callback (NautilusViewFrame *view,
+ double zoom_level,
+ double min_zoom_level,
+ double max_zoom_level,
+ NautilusWindow *window)
+{
+ nautilus_zoom_control_set_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), zoom_level);
+ nautilus_zoom_control_set_min_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), min_zoom_level);
+ nautilus_zoom_control_set_max_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), max_zoom_level);
+
+ /* We rely on the initial zoom_level_change signal to inform us that the
+ * view-frame is showing a new zoomable.
+ */
gtk_widget_show (window->zoom_control);
}
@@ -1160,6 +1177,7 @@ nautilus_window_connect_view (NautilusWindow *window, NautilusViewFrame *view)
CONNECT (report_load_failed);
CONNECT (set_title);
CONNECT (zoom_level_changed);
+ CONNECT (zoom_parameters_changed);
#undef CONNECT
diff --git a/src/nautilus-object-window.c b/src/nautilus-object-window.c
index 3f803e272..1e5340e83 100644
--- a/src/nautilus-object-window.c
+++ b/src/nautilus-object-window.c
@@ -1135,8 +1135,25 @@ nautilus_window_zoom_level_changed_callback (NautilusViewFrame *view,
nautilus_zoom_control_set_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), zoom_level);
/* We rely on the initial zoom_level_change signal to inform us that the
- * view-frame is showing something zoombale (i.e. we need a zoom control).
- */
+ * view-frame is showing a new zoomable.
+ */
+ gtk_widget_show (window->zoom_control);
+}
+
+static void
+nautilus_window_zoom_parameters_changed_callback (NautilusViewFrame *view,
+ double zoom_level,
+ double min_zoom_level,
+ double max_zoom_level,
+ NautilusWindow *window)
+{
+ nautilus_zoom_control_set_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), zoom_level);
+ nautilus_zoom_control_set_min_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), min_zoom_level);
+ nautilus_zoom_control_set_max_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), max_zoom_level);
+
+ /* We rely on the initial zoom_level_change signal to inform us that the
+ * view-frame is showing a new zoomable.
+ */
gtk_widget_show (window->zoom_control);
}
@@ -1160,6 +1177,7 @@ nautilus_window_connect_view (NautilusWindow *window, NautilusViewFrame *view)
CONNECT (report_load_failed);
CONNECT (set_title);
CONNECT (zoom_level_changed);
+ CONNECT (zoom_parameters_changed);
#undef CONNECT
diff --git a/src/nautilus-spatial-window.c b/src/nautilus-spatial-window.c
index 3f803e272..1e5340e83 100644
--- a/src/nautilus-spatial-window.c
+++ b/src/nautilus-spatial-window.c
@@ -1135,8 +1135,25 @@ nautilus_window_zoom_level_changed_callback (NautilusViewFrame *view,
nautilus_zoom_control_set_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), zoom_level);
/* We rely on the initial zoom_level_change signal to inform us that the
- * view-frame is showing something zoombale (i.e. we need a zoom control).
- */
+ * view-frame is showing a new zoomable.
+ */
+ gtk_widget_show (window->zoom_control);
+}
+
+static void
+nautilus_window_zoom_parameters_changed_callback (NautilusViewFrame *view,
+ double zoom_level,
+ double min_zoom_level,
+ double max_zoom_level,
+ NautilusWindow *window)
+{
+ nautilus_zoom_control_set_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), zoom_level);
+ nautilus_zoom_control_set_min_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), min_zoom_level);
+ nautilus_zoom_control_set_max_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), max_zoom_level);
+
+ /* We rely on the initial zoom_level_change signal to inform us that the
+ * view-frame is showing a new zoomable.
+ */
gtk_widget_show (window->zoom_control);
}
@@ -1160,6 +1177,7 @@ nautilus_window_connect_view (NautilusWindow *window, NautilusViewFrame *view)
CONNECT (report_load_failed);
CONNECT (set_title);
CONNECT (zoom_level_changed);
+ CONNECT (zoom_parameters_changed);
#undef CONNECT
diff --git a/src/nautilus-view-frame-private.h b/src/nautilus-view-frame-private.h
index 22cf073a7..caa2d6554 100644
--- a/src/nautilus-view-frame-private.h
+++ b/src/nautilus-view-frame-private.h
@@ -67,7 +67,11 @@ void nautilus_view_frame_set_title (NautilusViewFrame
/* Zoomable */
void nautilus_view_frame_zoom_level_changed (NautilusViewFrame *view,
- double level);
+ double zoom_level);
+void nautilus_view_frame_zoom_parameters_changed (NautilusViewFrame *view,
+ double zoom_level,
+ double min_zoom_level,
+ double max_zoom_level);
struct NautilusViewComponentType {
const char *primary_repoid;
diff --git a/src/nautilus-view-frame.c b/src/nautilus-view-frame.c
index f4c151f58..ec79e004a 100644
--- a/src/nautilus-view-frame.c
+++ b/src/nautilus-view-frame.c
@@ -51,6 +51,7 @@ enum {
REPORT_LOAD_FAILED,
SET_TITLE,
ZOOM_LEVEL_CHANGED,
+ ZOOM_PARAMETERS_CHANGED,
CLIENT_GONE,
LAST_SIGNAL
};
@@ -161,6 +162,15 @@ nautilus_view_frame_initialize_class (NautilusViewFrameClass *klass)
nautilus_gtk_marshal_NONE__DOUBLE,
GTK_TYPE_NONE, 1, GTK_TYPE_DOUBLE);
+ signals[ZOOM_PARAMETERS_CHANGED] =
+ gtk_signal_new ("zoom_parameters_changed",
+ GTK_RUN_LAST,
+ object_class->type,
+ GTK_SIGNAL_OFFSET (NautilusViewFrameClass,
+ zoom_parameters_changed),
+ nautilus_gtk_marshal_NONE__DOUBLE_DOUBLE_DOUBLE,
+ GTK_TYPE_NONE, 3, GTK_TYPE_DOUBLE, GTK_TYPE_DOUBLE, GTK_TYPE_DOUBLE);
+
signals[CLIENT_GONE] =
gtk_signal_new ("client_gone",
GTK_RUN_LAST,
@@ -708,6 +718,15 @@ nautilus_view_frame_zoom_level_changed (NautilusViewFrame *view,
gtk_signal_emit (GTK_OBJECT (view), signals[ZOOM_LEVEL_CHANGED], level);
}
+void
+nautilus_view_frame_zoom_parameters_changed (NautilusViewFrame *view,
+ double level,
+ double min,
+ double max)
+{
+ g_return_if_fail (NAUTILUS_IS_VIEW_FRAME (view));
+ gtk_signal_emit (GTK_OBJECT (view), signals[ZOOM_PARAMETERS_CHANGED], level, min, max);
+}
static gboolean
check_object(NautilusViewFrame *view)
diff --git a/src/nautilus-view-frame.h b/src/nautilus-view-frame.h
index 047f25b65..e9d85d6b4 100644
--- a/src/nautilus-view-frame.h
+++ b/src/nautilus-view-frame.h
@@ -101,6 +101,10 @@ typedef struct {
/* Part of Nautilus::ZoomableFrame CORBA interface. */
void (* zoom_level_changed) (NautilusViewFrame *view,
double zoom_level);
+ void (* zoom_parameters_changed) (NautilusViewFrame *view,
+ double zoom_level,
+ double min_zoom_level,
+ double max_zoom_level);
/* Error handling for when client goes away. */
void (* client_gone) (NautilusViewFrame *view);
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 3f803e272..1e5340e83 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -1135,8 +1135,25 @@ nautilus_window_zoom_level_changed_callback (NautilusViewFrame *view,
nautilus_zoom_control_set_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), zoom_level);
/* We rely on the initial zoom_level_change signal to inform us that the
- * view-frame is showing something zoombale (i.e. we need a zoom control).
- */
+ * view-frame is showing a new zoomable.
+ */
+ gtk_widget_show (window->zoom_control);
+}
+
+static void
+nautilus_window_zoom_parameters_changed_callback (NautilusViewFrame *view,
+ double zoom_level,
+ double min_zoom_level,
+ double max_zoom_level,
+ NautilusWindow *window)
+{
+ nautilus_zoom_control_set_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), zoom_level);
+ nautilus_zoom_control_set_min_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), min_zoom_level);
+ nautilus_zoom_control_set_max_zoom_level (NAUTILUS_ZOOM_CONTROL (window->zoom_control), max_zoom_level);
+
+ /* We rely on the initial zoom_level_change signal to inform us that the
+ * view-frame is showing a new zoomable.
+ */
gtk_widget_show (window->zoom_control);
}
@@ -1160,6 +1177,7 @@ nautilus_window_connect_view (NautilusWindow *window, NautilusViewFrame *view)
CONNECT (report_load_failed);
CONNECT (set_title);
CONNECT (zoom_level_changed);
+ CONNECT (zoom_parameters_changed);
#undef CONNECT
diff --git a/src/nautilus-zoom-control.c b/src/nautilus-zoom-control.c
index 8bdc8e16e..4ccf98b11 100644
--- a/src/nautilus-zoom-control.c
+++ b/src/nautilus-zoom-control.c
@@ -59,8 +59,6 @@ static int nautilus_zoom_control_expose (GtkWidget *widget,
GdkEventExpose *event);
static gboolean nautilus_zoom_control_button_press_event (GtkWidget *widget,
GdkEventButton *event);
-static void set_zoom_level (NautilusZoomControl *zoom_control,
- int new_level);
void draw_number_and_disable_arrows (GtkWidget *widget,
GdkRectangle *box);
@@ -156,10 +154,9 @@ nautilus_zoom_control_initialize (NautilusZoomControl *zoom_control)
char *file_name;
GtkWidget *pix_widget;
- zoom_control->current_zoom = NAUTILUS_ZOOM_LEVEL_STANDARD;
- zoom_control->min_zoom = NAUTILUS_ZOOM_LEVEL_SMALLEST;
- zoom_control->max_zoom = NAUTILUS_ZOOM_LEVEL_LARGEST;
- zoom_control->zoom_factor = 1.0;
+ zoom_control->zoom_level = 1.0;
+ zoom_control->min_zoom_level = 0.0;
+ zoom_control->max_zoom_level = 4.0;
/* allocate the pixmap that holds the image */
@@ -190,7 +187,7 @@ void draw_number_and_disable_arrows(GtkWidget *widget, GdkRectangle *box)
label_font = gdk_font_load("-bitstream-courier-medium-r-normal-*-9-*-*-*-*-*-*-*");
temp_gc = gdk_gc_new(widget->window);
- percent = floor((100.0 * zoom_control->zoom_factor) + .5);
+ percent = floor((100.0 * zoom_control->zoom_level) + .5);
g_snprintf(buffer, 8, "%d", percent);
x = (box->width - gdk_string_width(label_font, buffer)) >> 1;
@@ -201,9 +198,9 @@ void draw_number_and_disable_arrows(GtkWidget *widget, GdkRectangle *box)
/* clear the arrows if necessary */
- if (zoom_control->current_zoom == zoom_control->min_zoom)
+ if (zoom_control->zoom_level <= zoom_control->min_zoom_level)
gdk_draw_rectangle (widget->window, widget->style->bg_gc[0], TRUE, 0, 0, box->width / 4, box->height);
- else if (zoom_control->current_zoom == zoom_control->max_zoom)
+ else if (zoom_control->zoom_level >= zoom_control->max_zoom_level)
gdk_draw_rectangle (widget->window, widget->style->bg_gc[0], TRUE, box->width - (box->width / 4), 0, box->width / 4, box->height);
gdk_gc_unref(temp_gc);
@@ -256,19 +253,13 @@ zoom_menu_callback (GtkMenuItem *item, gpointer callback_data)
zoom_control = NAUTILUS_ZOOM_CONTROL (callback_data);
/* Check to see if we can zoom out */
- if ((zoom_level < zoom_control->current_zoom && zoom_level >= zoom_control->min_zoom) ||
- (zoom_level > zoom_control->current_zoom && zoom_level <= zoom_control->max_zoom)) {
+ if ((zoom_control->min_zoom_level <= zoom_level && zoom_level < zoom_control->zoom_level) ||
+ (zoom_control->zoom_level < zoom_level && zoom_level <= zoom_control->max_zoom_level)) {
gtk_signal_emit (GTK_OBJECT (zoom_control), signals[ZOOM_TO_LEVEL], zoom_level);
}
}
static void
-zoom_menu_item_free_zoom_level (gpointer zoom_level_ptr)
-{
- g_free (zoom_level_ptr);
-}
-
-static void
create_zoom_menu_item (GtkMenu *menu, GtkWidget *zoom_control,
const char *item_text, double zoom_level)
{
@@ -280,7 +271,7 @@ create_zoom_menu_item (GtkMenu *menu, GtkWidget *zoom_control,
zoom_level_ptr = g_new (double, 1);
*zoom_level_ptr = zoom_level;
- gtk_object_set_data_full (GTK_OBJECT (menu_item), "zoom_level", zoom_level_ptr, zoom_menu_item_free_zoom_level);
+ gtk_object_set_data_full (GTK_OBJECT (menu_item), "zoom_level", zoom_level_ptr, g_free);
gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
GTK_SIGNAL_FUNC (zoom_menu_callback),
zoom_control);
@@ -305,15 +296,6 @@ create_zoom_menu(GtkWidget *zoom_control)
return menu;
}
-static void
-set_zoom_level(NautilusZoomControl *zoom_control, int new_level)
-{
- gtk_widget_queue_draw (GTK_WIDGET (zoom_control));
- zoom_control->current_zoom = new_level;
- zoom_control->zoom_factor = (double) nautilus_get_icon_size_for_zoom_level
- (zoom_control->current_zoom) / NAUTILUS_ICON_SIZE_STANDARD;
-}
-
/* handle button presses */
static gboolean
@@ -335,9 +317,9 @@ nautilus_zoom_control_button_press_event (GtkWidget *widget, GdkEventButton *eve
return TRUE;
}
- if (event->x < (width / 3) && (zoom_control->current_zoom > zoom_control->min_zoom)) {
+ if (event->x < (width / 3) && (zoom_control->zoom_level > zoom_control->min_zoom_level)) {
gtk_signal_emit (GTK_OBJECT (widget), signals[ZOOM_OUT]);
- } else if ((event->x > ((2 * width) / 3)) && (zoom_control->current_zoom < zoom_control->max_zoom)) {
+ } else if ((event->x > ((2 * width) / 3)) && (zoom_control->zoom_level < zoom_control->max_zoom_level)) {
gtk_signal_emit (GTK_OBJECT (widget), signals[ZOOM_IN]);
} else if ((event->x >= (center - (width >> 3))) && (event->x <= (center + (width >> 3)))) {
gtk_signal_emit (GTK_OBJECT (widget), signals[ZOOM_DEFAULT]);
@@ -354,12 +336,6 @@ nautilus_zoom_control_button_press_event (GtkWidget *widget, GdkEventButton *eve
return TRUE;
}
-void
-nautilus_zoom_control_reset_zoom_level (NautilusZoomControl *zoom_control)
-{
- set_zoom_level (zoom_control, NAUTILUS_ZOOM_LEVEL_STANDARD);
-}
-
/*
* FIXME bugzila.eazel.com 1425:
*
@@ -380,33 +356,44 @@ nautilus_zoom_control_reset_zoom_level (NautilusZoomControl *zoom_control)
* doubles.
*/
-static NautilusZoomLevel
-nautilus_zoom_level_from_double(double zoom_level)
+
+void
+nautilus_zoom_control_set_zoom_level (NautilusZoomControl *zoom_control, double zoom_level)
{
- int icon_size = floor(zoom_level * NAUTILUS_ICON_SIZE_STANDARD + 0.5);
-
- if (icon_size <= NAUTILUS_ICON_SIZE_SMALLEST) {
- return NAUTILUS_ZOOM_LEVEL_SMALLEST;
- } else if (icon_size <= NAUTILUS_ICON_SIZE_SMALLER) {
- return NAUTILUS_ZOOM_LEVEL_SMALLER;
- } else if (icon_size <= NAUTILUS_ICON_SIZE_SMALL) {
- return NAUTILUS_ZOOM_LEVEL_SMALL;
- } else if (icon_size <= NAUTILUS_ICON_SIZE_STANDARD) {
- return NAUTILUS_ZOOM_LEVEL_STANDARD;
- } else if (icon_size <= NAUTILUS_ICON_SIZE_LARGE) {
- return NAUTILUS_ZOOM_LEVEL_LARGE;
- } else if (icon_size <= NAUTILUS_ICON_SIZE_LARGER) {
- return NAUTILUS_ZOOM_LEVEL_LARGER;
- } else {
- return NAUTILUS_ZOOM_LEVEL_LARGEST;
- }
+ zoom_control->zoom_level = zoom_level;
+ gtk_widget_queue_draw (GTK_WIDGET (zoom_control));
}
-/*
- * Changes the zoom controls setting to the nearest corresponding
- */
void
-nautilus_zoom_control_set_zoom_level (NautilusZoomControl *zoom_control, double zoom_level)
+nautilus_zoom_control_set_min_zoom_level (NautilusZoomControl *zoom_control, double zoom_level)
+{
+ zoom_control->min_zoom_level = zoom_level;
+ gtk_widget_queue_draw (GTK_WIDGET (zoom_control));
+}
+
+void
+nautilus_zoom_control_set_max_zoom_level (NautilusZoomControl *zoom_control, double zoom_level)
+{
+ zoom_control->max_zoom_level = zoom_level;
+ gtk_widget_queue_draw (GTK_WIDGET (zoom_control));
+}
+
+double
+nautilus_zoom_control_get_zoom_level (NautilusZoomControl *zoom_control)
{
- set_zoom_level (zoom_control, nautilus_zoom_level_from_double(zoom_level));
+ return zoom_control->zoom_level;
}
+
+double
+nautilus_zoom_control_get_min_zoom_level (NautilusZoomControl *zoom_control)
+{
+ return zoom_control->min_zoom_level;
+}
+
+double
+nautilus_zoom_control_get_max_zoom_level (NautilusZoomControl *zoom_control)
+{
+ return zoom_control->max_zoom_level;
+}
+
+
diff --git a/src/nautilus-zoom-control.h b/src/nautilus-zoom-control.h
index 59cdd55c5..e4f33da60 100644
--- a/src/nautilus-zoom-control.h
+++ b/src/nautilus-zoom-control.h
@@ -45,10 +45,9 @@ typedef struct NautilusZoomControlClass NautilusZoomControlClass;
struct NautilusZoomControl {
GtkEventBox parent;
- int current_zoom;
- int min_zoom;
- int max_zoom;
- double zoom_factor;
+ double zoom_level;
+ double min_zoom_level;
+ double max_zoom_level;
};
struct NautilusZoomControlClass {
@@ -74,8 +73,6 @@ double nautilus_zoom_control_get_zoom_level (NautilusZoomControl *zoom_c
double nautilus_zoom_control_get_min_zoom_level (NautilusZoomControl *zoom_control);
double nautilus_zoom_control_get_max_zoom_level (NautilusZoomControl *zoom_control);
-void nautilus_zoom_control_reset_zoom_level (NautilusZoomControl *zoom_control);
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/src/nautilus-zoomable-frame-corba.c b/src/nautilus-zoomable-frame-corba.c
index 1512d6187..167154b55 100644
--- a/src/nautilus-zoomable-frame-corba.c
+++ b/src/nautilus-zoomable-frame-corba.c
@@ -39,14 +39,21 @@ typedef struct {
NautilusViewFrame *view;
} impl_POA_Nautilus_ZoomableFrame;
-static void impl_Nautilus_ZoomableFrame_zoom_level_changed (PortableServer_Servant servant,
+static void impl_Nautilus_ZoomableFrame_report_zoom_level_changed (PortableServer_Servant servant,
CORBA_double level,
CORBA_Environment *ev);
+static void impl_Nautilus_ZoomableFrame_report_zoom_parameters_changed (PortableServer_Servant servant,
+ CORBA_double level,
+ CORBA_double min,
+ CORBA_double max,
+ CORBA_Environment *ev);
+
POA_Nautilus_ZoomableFrame__epv impl_Nautilus_ZoomableFrame_epv =
{
NULL,
- &impl_Nautilus_ZoomableFrame_zoom_level_changed,
+ impl_Nautilus_ZoomableFrame_report_zoom_level_changed,
+ impl_Nautilus_ZoomableFrame_report_zoom_parameters_changed,
};
static PortableServer_ServantBase__epv base_epv;
@@ -107,11 +114,22 @@ impl_Nautilus_ZoomableFrame__create (NautilusViewFrame *view,
}
static void
-impl_Nautilus_ZoomableFrame_zoom_level_changed (PortableServer_Servant servant,
- CORBA_double level,
- CORBA_Environment *ev)
+impl_Nautilus_ZoomableFrame_report_zoom_level_changed (PortableServer_Servant servant,
+ CORBA_double level,
+ CORBA_Environment *ev)
{
nautilus_view_frame_zoom_level_changed
(((impl_POA_Nautilus_ZoomableFrame *) servant)->view,
level);
}
+
+static void
+impl_Nautilus_ZoomableFrame_report_zoom_parameters_changed (PortableServer_Servant servant,
+ CORBA_double level,
+ CORBA_double min,
+ CORBA_double max,
+ CORBA_Environment *ev)
+{
+ nautilus_view_frame_zoom_parameters_changed
+ (((impl_POA_Nautilus_ZoomableFrame *) servant)->view, level, min, max);
+}