summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDarin Adler <darin@src.gnome.org>2000-02-18 01:17:30 +0000
committerDarin Adler <darin@src.gnome.org>2000-02-18 01:17:30 +0000
commit3bce71a50295541884adfc7b1a5d9a0b9d6db67d (patch)
tree16474913233c4497987de3be45e0b5c0a88c43fe /src
parentf32e59deb4bf7fa44ff97c4a0c026351d76c18f7 (diff)
downloadnautilus-3bce71a50295541884adfc7b1a5d9a0b9d6db67d.tar.gz
Hand tuned icons for multiple resolutions.
So for example you can have an icon designed for the 96x96 size, which is called i-directory-96.png, and it will be loaded instead of loading i-directory.png and scaling it. * libnautilus/nautilus-icon-factory.c: (nautilus_icon_factory_get_icon_name_for_regular_file), (add_size_to_icon_name), (nautilus_icon_factory_load_icon), (nautilus_icon_factory_create_image_for_item), (get_larger_icon_size), (get_smaller_icon_size), (get_next_icon_size_to_try), (load_specific_image), (load_image_for_scaling), (load_image_scale_if_necessary), (nautilus_icon_factory_mark_recently_used), (mark_recently_used), (nautilus_icon_factory_get_pixbuf_for_icon), (get_image_from_cache), (nautilus_icon_factory_scale): Changed the icon factory so it will look for icons of multiple resolutions and scale the nearest. Also made other improvements including sharing a single fallback icon instead of making multiple ones, using the "core-dump" icon for files named "core", adding some additional g_return_if_fail. * libnautilus/nautilus-icon-factory.c: (self_test_next_icon_size_to_try), (nautilus_self_check_icon_factory): * libnautilus/nautilus-lib-self-check-functions.h: The new code needed a bit of self-check code, so I added it. * libnautilus/nautilus-directory.c: (nautilus_directory_try_to_read_metafile), (nautilus_directory_construct_alternate_metafile_uri): Since "make check" was failing, I checked to see what was wrong. The code that was respecting the new "valid_fields" part of GnomeVFSFileInfo was looking at the wrong field (flags instead of valid_fields), which caused all metafile reading to fail. While debugging this, I noticed that the alternate metafiles had particularly bad long names, so I fixed that too. * libnautilus/nautilus-directory.c: (nautilus_file_ref): * libnautilus/nautilus-glib-extensions.c: (nautilus_strdup_strftime): * libnautilus/nautilus-string.c: (nautilus_string_to_int): Switched from using <limits.h> constants to the ones from <glib.h>. I have no idea why I made this change. All hail glib! C Standard be damned! * fm-directory-view.c: (use_eazel_theme_icons_cb), (add_menu_item), (fm_directory_view_real_append_background_context_menu_items): Started on a user interface to switch to the Eazel theme icons so you can see the multiple-resolution icons, but I wanted to check in, so I stopped before it was done. * src/nautilus-index-title.c: Reindented Andy's new code to match the emacs mode header. * configure.in: * icons/Makefile.am: * icons/eazel/.cvsignore: * icons/eazel/Makefile.am: * icons/eazel/i-directory-24.png: * icons/eazel/i-directory-36.png: * icons/eazel/i-directory-72.png: * icons/eazel/i-directory-96.png: * icons/eazel/i-directory.png: I needed some variable-size icons to demonstrate the multiple resolution support in the icon factory, so I added a few directory icons from gnomad. Since these don't match the other icons, I made them part of an "eazel" icons theme. * RENAMING: Some new name ideas.
Diffstat (limited to 'src')
-rw-r--r--src/file-manager/fm-directory-view.c49
-rw-r--r--src/nautilus-index-title.c62
-rw-r--r--src/nautilus-sidebar-title.c62
3 files changed, 84 insertions, 89 deletions
diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c
index 9e8004e8d..210036bc7 100644
--- a/src/file-manager/fm-directory-view.c
+++ b/src/file-manager/fm-directory-view.c
@@ -393,17 +393,23 @@ select_all_cb(GtkMenuItem *item, FMDirectoryView *directory_view)
/* handle the zoom in/out menu items */
static void
-zoom_in_cb(GtkMenuItem *item, FMDirectoryView *directory_view)
+zoom_in_cb (GtkMenuItem *item, FMDirectoryView *directory_view)
{
fm_directory_view_bump_zoom_level (directory_view, 1);
}
static void
-zoom_out_cb(GtkMenuItem *item, FMDirectoryView *directory_view)
+zoom_out_cb (GtkMenuItem *item, FMDirectoryView *directory_view)
{
fm_directory_view_bump_zoom_level (directory_view, -1);
}
+static void
+use_eazel_theme_icons_cb (GtkMenuItem *item, FMDirectoryView *directory_view)
+{
+ /* FIXME: This isn't implemented yet. */
+}
+
static gboolean
display_pending_files (FMDirectoryView *view)
{
@@ -788,36 +794,29 @@ open_in_new_window_cb (GtkMenuItem *item, NautilusFile *file)
fm_directory_view_activate_entry (directory_view, file, TRUE);
}
-
static void
-fm_directory_view_real_append_background_context_menu_items (FMDirectoryView *view,
- GtkMenu *menu)
+add_menu_item (FMDirectoryView *view, GtkMenu *menu, const char *label,
+ void (*activate_handler) (GtkMenuItem *, FMDirectoryView *),
+ gboolean sensitive)
{
GtkWidget *menu_item;
- menu_item = gtk_menu_item_new_with_label ("Select all");
+ menu_item = gtk_menu_item_new_with_label (label);
+ gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
+ GTK_SIGNAL_FUNC (activate_handler), view);
+ gtk_widget_set_sensitive (menu_item, sensitive);
gtk_widget_show (menu_item);
- gtk_signal_connect(GTK_OBJECT (menu_item), "activate",
- GTK_SIGNAL_FUNC (select_all_cb), view);
gtk_menu_append (menu, menu_item);
+}
-
- menu_item = gtk_menu_item_new_with_label ("Zoom in");
- gtk_signal_connect(GTK_OBJECT (menu_item), "activate",
- GTK_SIGNAL_FUNC (zoom_in_cb), view);
-
- gtk_widget_show (menu_item);
- gtk_menu_append (menu, menu_item);
- gtk_widget_set_sensitive (menu_item, fm_directory_view_can_zoom_in (view));
-
- menu_item = gtk_menu_item_new_with_label ("Zoom out");
-
- gtk_signal_connect(GTK_OBJECT (menu_item), "activate",
- GTK_SIGNAL_FUNC (zoom_out_cb), view);
-
- gtk_widget_show (menu_item);
- gtk_menu_append (menu, menu_item);
- gtk_widget_set_sensitive (menu_item, fm_directory_view_can_zoom_out (view));
+static void
+fm_directory_view_real_append_background_context_menu_items (FMDirectoryView *view,
+ GtkMenu *menu)
+{
+ add_menu_item (view, menu, _("Select All"), select_all_cb, TRUE);
+ add_menu_item (view, menu, _("Zoom In"), zoom_in_cb, fm_directory_view_can_zoom_in (view));
+ add_menu_item (view, menu, _("Zoom Out"), zoom_out_cb, fm_directory_view_can_zoom_out (view));
+ add_menu_item (view, menu, _("Use Eazel Theme Icons"), use_eazel_theme_icons_cb, FALSE);
}
static void
diff --git a/src/nautilus-index-title.c b/src/nautilus-index-title.c
index 1fab522e6..b319ef6f2 100644
--- a/src/nautilus-index-title.c
+++ b/src/nautilus-index-title.c
@@ -216,38 +216,36 @@ nautilus_index_title_set_up_label (NautilusIndexTitle *index_title, const char *
/* split the filename into two lines if necessary */
- if (strlen(file_name) >= 16)
- {
- /* find an appropriate split point if we can */
- gint index;
- gint mid_point = strlen(file_name) >> 1;
- gint quarter_point = mid_point >> 1;
- for (index = 0; index < quarter_point; index++)
- {
- gint split_offset = 0;
-
- if (!isalnum(file_name[mid_point + index]))
- split_offset = mid_point + index;
- else if (!isalnum(file_name[mid_point - index]))
- split_offset = mid_point - index;
-
- if (split_offset != 0) {
- char *buffer = (char *) g_malloc(strlen(file_name) + 2);
-
- /* build the new string, with a CR inserted, also remembering them separately for measuring */
-
- memcpy(buffer, file_name, split_offset);
- buffer[split_offset] = '\n';
- strcpy(&buffer[split_offset + 1], &file_name[split_offset]);
-
- /* free up the old string and replace it with the new one with the return inserted */
-
- g_free(file_name);
- file_name = buffer;
- }
- }
- }
-
+ if (strlen(file_name) >= 16) {
+ /* find an appropriate split point if we can */
+ gint index;
+ gint mid_point = strlen(file_name) >> 1;
+ gint quarter_point = mid_point >> 1;
+ for (index = 0; index < quarter_point; index++) {
+ gint split_offset = 0;
+
+ if (!isalnum(file_name[mid_point + index]))
+ split_offset = mid_point + index;
+ else if (!isalnum(file_name[mid_point - index]))
+ split_offset = mid_point - index;
+
+ if (split_offset != 0) {
+ char *buffer = (char *) g_malloc(strlen(file_name) + 2);
+
+ /* build the new string, with a CR inserted, also remembering them separately for measuring */
+
+ memcpy(buffer, file_name, split_offset);
+ buffer[split_offset] = '\n';
+ strcpy(&buffer[split_offset + 1], &file_name[split_offset]);
+
+ /* free up the old string and replace it with the new one with the return inserted */
+
+ g_free(file_name);
+ file_name = buffer;
+ }
+ }
+ }
+
if (index_title->details->title != NULL)
gtk_label_set_text (GTK_LABEL (index_title->details->title), file_name);
else {
diff --git a/src/nautilus-sidebar-title.c b/src/nautilus-sidebar-title.c
index 1fab522e6..b319ef6f2 100644
--- a/src/nautilus-sidebar-title.c
+++ b/src/nautilus-sidebar-title.c
@@ -216,38 +216,36 @@ nautilus_index_title_set_up_label (NautilusIndexTitle *index_title, const char *
/* split the filename into two lines if necessary */
- if (strlen(file_name) >= 16)
- {
- /* find an appropriate split point if we can */
- gint index;
- gint mid_point = strlen(file_name) >> 1;
- gint quarter_point = mid_point >> 1;
- for (index = 0; index < quarter_point; index++)
- {
- gint split_offset = 0;
-
- if (!isalnum(file_name[mid_point + index]))
- split_offset = mid_point + index;
- else if (!isalnum(file_name[mid_point - index]))
- split_offset = mid_point - index;
-
- if (split_offset != 0) {
- char *buffer = (char *) g_malloc(strlen(file_name) + 2);
-
- /* build the new string, with a CR inserted, also remembering them separately for measuring */
-
- memcpy(buffer, file_name, split_offset);
- buffer[split_offset] = '\n';
- strcpy(&buffer[split_offset + 1], &file_name[split_offset]);
-
- /* free up the old string and replace it with the new one with the return inserted */
-
- g_free(file_name);
- file_name = buffer;
- }
- }
- }
-
+ if (strlen(file_name) >= 16) {
+ /* find an appropriate split point if we can */
+ gint index;
+ gint mid_point = strlen(file_name) >> 1;
+ gint quarter_point = mid_point >> 1;
+ for (index = 0; index < quarter_point; index++) {
+ gint split_offset = 0;
+
+ if (!isalnum(file_name[mid_point + index]))
+ split_offset = mid_point + index;
+ else if (!isalnum(file_name[mid_point - index]))
+ split_offset = mid_point - index;
+
+ if (split_offset != 0) {
+ char *buffer = (char *) g_malloc(strlen(file_name) + 2);
+
+ /* build the new string, with a CR inserted, also remembering them separately for measuring */
+
+ memcpy(buffer, file_name, split_offset);
+ buffer[split_offset] = '\n';
+ strcpy(&buffer[split_offset + 1], &file_name[split_offset]);
+
+ /* free up the old string and replace it with the new one with the return inserted */
+
+ g_free(file_name);
+ file_name = buffer;
+ }
+ }
+ }
+
if (index_title->details->title != NULL)
gtk_label_set_text (GTK_LABEL (index_title->details->title), file_name);
else {