diff options
author | Darin Adler <darin@src.gnome.org> | 2000-02-18 01:17:30 +0000 |
---|---|---|
committer | Darin Adler <darin@src.gnome.org> | 2000-02-18 01:17:30 +0000 |
commit | 3bce71a50295541884adfc7b1a5d9a0b9d6db67d (patch) | |
tree | 16474913233c4497987de3be45e0b5c0a88c43fe /src | |
parent | f32e59deb4bf7fa44ff97c4a0c026351d76c18f7 (diff) | |
download | nautilus-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.c | 49 | ||||
-rw-r--r-- | src/nautilus-index-title.c | 62 | ||||
-rw-r--r-- | src/nautilus-sidebar-title.c | 62 |
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 { |