nautilus/libnautilus-extensions/nautilus-image.c

979 lines
25 KiB
C
Raw Normal View History

Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* nautilus-image.c - A widget to smoothly display images.
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Copyright (C) 1999, 2000 Eazel, Inc.
The Gnome Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the Gnome Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Authors: Ramiro Estrugo <ramiro@eazel.com>
*/
#include <config.h>
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
#include "nautilus-image.h"
Changed history list to include a separate position field instead of * components/history/nautilus-history-view.c: (history_view_update_icons), (get_history_list), (hyperbola_navigation_history_load_location): * libnautilus/nautilus-view-component.idl: * src/nautilus-history-frame.c: (impl_Nautilus_HistoryFrame_get_history_list): * src/nautilus-view-frame.h: * src/nautilus-view-frame.c: (nautilus_view_frame_get_history_list): * src/nautilus-window.c: (nautilus_window_get_history_list_callback), (nautilus_window_connect_view): Changed history list to include a separate position field instead of having a position in each entry. * components/notes/nautilus-notes.c: (done_with_file): Name changed from nautilus_file_cancel_callback to nautilus_file_cancel_call_when_ready to reduce confusion with nautilus_file_cancel. * libnautilus-extensions/nautilus-directory.c: (nautilus_directory_get): Made NULL for URI be legal (and result in NULL for the directory object). * libnautilus-extensions/nautilus-mime-actions.c: (get_mime_type_from_uri): Made NULL for URI be legal (and result in NULL for MIME type). * libnautilus-extensions/nautilus-entry.c: (nautilus_entry_set_text): Minor tweak. * libnautilus-extensions/nautilus-file.h: * libnautilus-extensions/nautilus-file-private.h: * libnautilus-extensions/nautilus-file.c: (operation_new), (operation_free), (operation_complete), (operation_cancel), (rename_update_info_and_metafile), (rename_callback), (nautilus_file_rename), (nautilus_file_cancel), (nautilus_file_set_owner), (nautilus_file_cancel_call_when_ready): Added cancelling to rename as a prelude to doing the same for set_file_info-based calls. * libnautilus-extensions/nautilus-graphic.c: Fixed a formatting mistake and a typo. * libnautilus-extensions/nautilus-stock-dialogs.h: * libnautilus-extensions/nautilus-stock-dialogs.c: (timed_wait_hash), (timed_wait_hash_equal), (nautilus_timed_wait_start), (nautilus_timed_wait_free), (nautilus_timed_wait_stop): Re-did timed wait API now that we are really using it. Still unimplemented. * src/Makefile.am: Since IDL dependencies are not understood by automake, added an explicit one so we pick up the change to the libnautilus view component IDL. * src/file-manager/fm-error-reporting.h: * src/file-manager/fm-error-reporting.c: (rename_callback), (cancel_rename_callback), (fm_rename_file): Moved code for renaming into here so it can be shared between the icon view and the properties dialog. Perhaps it needs to be renamed. * src/file-manager/fm-icon-view.c: (fm_icon_view_icon_text_changed_callback): Use the shared code instead of having the rename code here. * src/nautilus-application.c: (create_object): Make a new shell object each time instead of trying to share one. (nautilus_application_startup): Activate the shell object using OAF. This makes it work across processes and adds the feature. * src/nautilus-main.c: (main): Call bonobo_activate explicitly so CORBA calls work before the main loop. * src/nautilus-shell.c: (display_caveat_first_time), (corba_manage_desktop): Got rid of all state in NautilusShell so we can use multiple shell objects if we want. * src/nautilus-sidebar.c: (nautilus_sidebar_update_info): Got rid of code that checks for NULL.
2000-07-11 01:10:05 +00:00
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
#include "nautilus-gtk-macros.h"
#include "nautilus-gdk-extensions.h"
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
#include "nautilus-gtk-extensions.h"
#include "nautilus-gdk-pixbuf-extensions.h"
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
#include "nautilus-art-gtk-extensions.h"
#include "nautilus-string.h"
#include "nautilus-lib-self-check-functions.h"
#include "nautilus-debug-drawing.h"
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
/* Arguments */
enum
{
ARG_0,
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
ARG_BACKGROUND_MODE,
ARG_IS_SMOOTH,
ARG_PIXBUF,
ARG_PIXBUF_OPACITY,
ARG_TILE_HEIGHT,
ARG_TILE_MODE_HORIZONTAL,
ARG_TILE_MODE_VERTICAL,
ARG_TILE_OPACITY,
ARG_TILE_PIXBUF,
ARG_TILE_WIDTH
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
};
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Signals */
typedef enum
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
DRAW_BACKGROUND,
SET_IS_SMOOTH,
LAST_SIGNAL
} ImageSignal;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Signals */
static guint image_signals[LAST_SIGNAL] = { 0 };
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Detail member struct */
struct _NautilusImageDetail
{
gboolean is_smooth;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Tile attributes */
GdkPixbuf *tile_pixbuf;
int tile_opacity;
int tile_width;
int tile_height;
NautilusSmoothTileMode tile_mode_vertical;
NautilusSmoothTileMode tile_mode_horizontal;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Pixbuf */
GdkPixbuf *pixbuf;
int pixbuf_opacity;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Background */
NautilusSmoothBackgroundMode background_mode;
guint32 solid_background_color;
};
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* GtkObjectClass methods */
static void nautilus_image_initialize_class (NautilusImageClass *image_class);
static void nautilus_image_initialize (NautilusImage *image);
static void nautilus_image_destroy (GtkObject *object);
static void nautilus_image_set_arg (GtkObject *object,
GtkArg *arg,
guint arg_id);
static void nautilus_image_get_arg (GtkObject *object,
GtkArg *arg,
guint arg_id);
Tasks: 1612, 1274, 1511 and 1588. * libnautilus-extensions/nautilus-scalable-font.c: * libnautilus-extensions/nautilus-scalable-font.h: New GtkObject subclass that provdes a simple interface to raph's librsvg FreeType2 bases anti aliased text rendering. * libnautilus-extensions/nautilus-font-picker.c: * libnautilus-extensions/nautilus-font-picker.h: New font picker class. I will soon use it in the preferences dialog instead of the current one. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: New virtual widget class that encapsulates the details of finding a suitable background for compositing pixbufs. * libnautilus-extensions/nautilus-image.c: * libnautilus-extensions/nautilus-image.h: Rewritten NautilusImage class. Took out all the label stuff, which lives in its own class. Now subclassed from NautilusBufferedWidget so that background the image gets composited on is always correct and groks NautilusBackground. * libnautilus-extensions/nautilus-label.c: * libnautilus-extensions/nautilus-label.h: New NautilusLabel widget class. A label widget that is capable of displaying anti aliased text composited over a complex background. The background can be installed as NautilusBackground on a NautilusLabel widget or any of its ancestors. The best background will automatically be found and used by the widget. * services/nautilus-dependant-shared/shared-service-widgets.c, * services/nautilus-dependant-shared/shared-service-widgets.h, * services/startup/nautilus-view/nautilus-service-startup-view.c: Update for changes in the NautilusImage api. Unfortunately, these components are slightly broken now cause of the NautilusImage changes. I will fix them shortly. * libnautilus-extensions/nautilus-string-map.c: * libnautilus-extensions/nautilus-string-map.h: New simple class to map an arbitrary number of strings to a single string. * libnautilus-extensions/nautilus-lib-self-check-functions.h: Add tests for the new string map class. * libnautilus-extensions/Makefile.am: Build the new widgets. Also add some depedencies on the static libraries we link into this beast. This way, libnautilus-extensions will rebuild of one if its dependency static libs is touched. * test/.cvsignore, * test/Makefile.am, * test/test-nautilus-font-picker.c, * test/test-nautilus-font.c, * test/test-nautilus-image.c, * test/test-nautilus-label.c: Update test programs for new widgets.
2000-08-21 14:16:54 +00:00
/* GtkWidgetClass methods */
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
static void nautilus_image_size_request (GtkWidget *widget,
GtkRequisition *requisition);
static int nautilus_image_expose_event (GtkWidget *widget,
GdkEventExpose *event);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* NautilusImage signals */
static void nautilus_image_set_is_smooth_signal (GtkWidget *widget,
gboolean is_smooth);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Private NautilusImage methods */
static ArtIRect image_get_pixbuf_frame (const NautilusImage *image);
static ArtIRect image_get_pixbuf_bounds (const NautilusImage *image);
static ArtIRect image_get_tile_frame (const NautilusImage *image);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusImage, nautilus_image, GTK_TYPE_MISC)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
/* Class init methods */
Changed history list to include a separate position field instead of * components/history/nautilus-history-view.c: (history_view_update_icons), (get_history_list), (hyperbola_navigation_history_load_location): * libnautilus/nautilus-view-component.idl: * src/nautilus-history-frame.c: (impl_Nautilus_HistoryFrame_get_history_list): * src/nautilus-view-frame.h: * src/nautilus-view-frame.c: (nautilus_view_frame_get_history_list): * src/nautilus-window.c: (nautilus_window_get_history_list_callback), (nautilus_window_connect_view): Changed history list to include a separate position field instead of having a position in each entry. * components/notes/nautilus-notes.c: (done_with_file): Name changed from nautilus_file_cancel_callback to nautilus_file_cancel_call_when_ready to reduce confusion with nautilus_file_cancel. * libnautilus-extensions/nautilus-directory.c: (nautilus_directory_get): Made NULL for URI be legal (and result in NULL for the directory object). * libnautilus-extensions/nautilus-mime-actions.c: (get_mime_type_from_uri): Made NULL for URI be legal (and result in NULL for MIME type). * libnautilus-extensions/nautilus-entry.c: (nautilus_entry_set_text): Minor tweak. * libnautilus-extensions/nautilus-file.h: * libnautilus-extensions/nautilus-file-private.h: * libnautilus-extensions/nautilus-file.c: (operation_new), (operation_free), (operation_complete), (operation_cancel), (rename_update_info_and_metafile), (rename_callback), (nautilus_file_rename), (nautilus_file_cancel), (nautilus_file_set_owner), (nautilus_file_cancel_call_when_ready): Added cancelling to rename as a prelude to doing the same for set_file_info-based calls. * libnautilus-extensions/nautilus-graphic.c: Fixed a formatting mistake and a typo. * libnautilus-extensions/nautilus-stock-dialogs.h: * libnautilus-extensions/nautilus-stock-dialogs.c: (timed_wait_hash), (timed_wait_hash_equal), (nautilus_timed_wait_start), (nautilus_timed_wait_free), (nautilus_timed_wait_stop): Re-did timed wait API now that we are really using it. Still unimplemented. * src/Makefile.am: Since IDL dependencies are not understood by automake, added an explicit one so we pick up the change to the libnautilus view component IDL. * src/file-manager/fm-error-reporting.h: * src/file-manager/fm-error-reporting.c: (rename_callback), (cancel_rename_callback), (fm_rename_file): Moved code for renaming into here so it can be shared between the icon view and the properties dialog. Perhaps it needs to be renamed. * src/file-manager/fm-icon-view.c: (fm_icon_view_icon_text_changed_callback): Use the shared code instead of having the rename code here. * src/nautilus-application.c: (create_object): Make a new shell object each time instead of trying to share one. (nautilus_application_startup): Activate the shell object using OAF. This makes it work across processes and adds the feature. * src/nautilus-main.c: (main): Call bonobo_activate explicitly so CORBA calls work before the main loop. * src/nautilus-shell.c: (display_caveat_first_time), (corba_manage_desktop): Got rid of all state in NautilusShell so we can use multiple shell objects if we want. * src/nautilus-sidebar.c: (nautilus_sidebar_update_info): Got rid of code that checks for NULL.
2000-07-11 01:10:05 +00:00
static void
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
nautilus_image_initialize_class (NautilusImageClass *image_class)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
GtkObjectClass *object_class = GTK_OBJECT_CLASS (image_class);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (image_class);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
/* GtkObjectClass */
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
object_class->destroy = nautilus_image_destroy;
object_class->set_arg = nautilus_image_set_arg;
object_class->get_arg = nautilus_image_get_arg;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
/* GtkWidgetClass */
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
widget_class->size_request = nautilus_image_size_request;
widget_class->expose_event = nautilus_image_expose_event;
Tasks: 1612, 1274, 1511 and 1588. * libnautilus-extensions/nautilus-scalable-font.c: * libnautilus-extensions/nautilus-scalable-font.h: New GtkObject subclass that provdes a simple interface to raph's librsvg FreeType2 bases anti aliased text rendering. * libnautilus-extensions/nautilus-font-picker.c: * libnautilus-extensions/nautilus-font-picker.h: New font picker class. I will soon use it in the preferences dialog instead of the current one. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: New virtual widget class that encapsulates the details of finding a suitable background for compositing pixbufs. * libnautilus-extensions/nautilus-image.c: * libnautilus-extensions/nautilus-image.h: Rewritten NautilusImage class. Took out all the label stuff, which lives in its own class. Now subclassed from NautilusBufferedWidget so that background the image gets composited on is always correct and groks NautilusBackground. * libnautilus-extensions/nautilus-label.c: * libnautilus-extensions/nautilus-label.h: New NautilusLabel widget class. A label widget that is capable of displaying anti aliased text composited over a complex background. The background can be installed as NautilusBackground on a NautilusLabel widget or any of its ancestors. The best background will automatically be found and used by the widget. * services/nautilus-dependant-shared/shared-service-widgets.c, * services/nautilus-dependant-shared/shared-service-widgets.h, * services/startup/nautilus-view/nautilus-service-startup-view.c: Update for changes in the NautilusImage api. Unfortunately, these components are slightly broken now cause of the NautilusImage changes. I will fix them shortly. * libnautilus-extensions/nautilus-string-map.c: * libnautilus-extensions/nautilus-string-map.h: New simple class to map an arbitrary number of strings to a single string. * libnautilus-extensions/nautilus-lib-self-check-functions.h: Add tests for the new string map class. * libnautilus-extensions/Makefile.am: Build the new widgets. Also add some depedencies on the static libraries we link into this beast. This way, libnautilus-extensions will rebuild of one if its dependency static libs is touched. * test/.cvsignore, * test/Makefile.am, * test/test-nautilus-font-picker.c, * test/test-nautilus-font.c, * test/test-nautilus-image.c, * test/test-nautilus-label.c: Update test programs for new widgets.
2000-08-21 14:16:54 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* NautilusImageClass */
image_class->set_is_smooth = nautilus_image_set_is_smooth_signal;
/* Signals */
image_signals[DRAW_BACKGROUND] = gtk_signal_new ("draw_background",
GTK_RUN_LAST,
object_class->type,
0,
gtk_marshal_NONE__POINTER_POINTER,
GTK_TYPE_NONE,
2,
GTK_TYPE_POINTER,
GTK_TYPE_POINTER);
image_signals[SET_IS_SMOOTH] = gtk_signal_new ("set_is_smooth",
GTK_RUN_LAST,
object_class->type,
GTK_SIGNAL_OFFSET (NautilusImageClass, set_is_smooth),
gtk_marshal_NONE__BOOL,
GTK_TYPE_NONE,
1,
GTK_TYPE_BOOL);
gtk_object_class_add_signals (object_class, image_signals, LAST_SIGNAL);
/* Arguments */
gtk_object_add_arg_type ("NautilusImage::is_smooth",
GTK_TYPE_BOOL,
GTK_ARG_READWRITE,
ARG_IS_SMOOTH);
gtk_object_add_arg_type ("NautilusImage::pixbuf",
GTK_TYPE_POINTER,
GTK_ARG_READWRITE,
ARG_PIXBUF);
gtk_object_add_arg_type ("NautilusImage::pixbuf_opacity",
GTK_TYPE_INT,
GTK_ARG_READWRITE,
ARG_PIXBUF_OPACITY);
gtk_object_add_arg_type ("NautilusImage::background_mode",
GTK_TYPE_UINT,
GTK_ARG_READWRITE,
ARG_BACKGROUND_MODE);
gtk_object_add_arg_type ("NautilusImage::tile_pixbuf",
GTK_TYPE_POINTER,
GTK_ARG_READWRITE,
ARG_TILE_PIXBUF);
gtk_object_add_arg_type ("NautilusImage::tile_opacity",
GTK_TYPE_INT,
GTK_ARG_READWRITE,
ARG_TILE_OPACITY);
gtk_object_add_arg_type ("NautilusImage::tile_width",
GTK_TYPE_INT,
GTK_ARG_READWRITE,
ARG_TILE_WIDTH);
gtk_object_add_arg_type ("NautilusImage::tile_height",
GTK_TYPE_INT,
GTK_ARG_READWRITE,
ARG_TILE_HEIGHT);
gtk_object_add_arg_type ("NautilusImage::tile_mode_vertical",
GTK_TYPE_UINT,
GTK_ARG_READWRITE,
ARG_TILE_MODE_VERTICAL);
gtk_object_add_arg_type ("NautilusImage::tile_mode_horizontal",
GTK_TYPE_UINT,
GTK_ARG_READWRITE,
ARG_TILE_MODE_HORIZONTAL);
/* Make this class inherit the same kind of theme stuff as GtkPixmap */
nautilus_gtk_class_name_make_like_existing_type ("NautilusImage", GTK_TYPE_PIXMAP);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
}
void
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
nautilus_image_initialize (NautilusImage *image)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
GTK_WIDGET_UNSET_FLAGS (image, GTK_CAN_FOCUS);
GTK_WIDGET_SET_FLAGS (image, GTK_NO_WINDOW);
image->detail = g_new0 (NautilusImageDetail, 1);
image->detail->pixbuf_opacity = NAUTILUS_OPACITY_FULLY_OPAQUE;
image->detail->tile_opacity = NAUTILUS_OPACITY_FULLY_OPAQUE;
image->detail->tile_width = NAUTILUS_SMOOTH_TILE_EXTENT_FULL;
image->detail->tile_height = NAUTILUS_SMOOTH_TILE_EXTENT_FULL;
image->detail->tile_mode_vertical = NAUTILUS_SMOOTH_TILE_SELF;
image->detail->tile_mode_horizontal = NAUTILUS_SMOOTH_TILE_SELF;
image->detail->background_mode = NAUTILUS_SMOOTH_BACKGROUND_GTK;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_smooth_widget_register (GTK_WIDGET (image));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
}
/* GtkObjectClass methods */
static void
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
nautilus_image_destroy (GtkObject *object)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
NautilusImage *image;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
g_return_if_fail (NAUTILUS_IS_IMAGE (object));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
image = NAUTILUS_IMAGE (object);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_gdk_pixbuf_unref_if_not_null (image->detail->tile_pixbuf);
image->detail->tile_pixbuf = NULL;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
g_free (image->detail);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
/* Chain destroy */
NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, (object));
}
static void
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_set_arg (GtkObject *object,
GtkArg *arg,
guint arg_id)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
NautilusImage *image;
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
g_return_if_fail (NAUTILUS_IS_IMAGE (object));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
image = NAUTILUS_IMAGE (object);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
switch (arg_id)
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
case ARG_IS_SMOOTH:
nautilus_image_set_is_smooth (image, GTK_VALUE_BOOL (*arg));
break;
case ARG_PIXBUF_OPACITY:
nautilus_image_set_pixbuf_opacity (image, GTK_VALUE_INT (*arg));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
break;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
case ARG_BACKGROUND_MODE:
nautilus_image_set_background_mode (image, GTK_VALUE_UINT (*arg));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
break;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
case ARG_PIXBUF:
nautilus_image_set_pixbuf (image, (GdkPixbuf *) GTK_VALUE_POINTER (*arg));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
break;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
case ARG_TILE_OPACITY:
nautilus_image_set_tile_opacity (image, GTK_VALUE_INT (*arg));
break;
case ARG_TILE_PIXBUF:
nautilus_image_set_tile_pixbuf (image, (GdkPixbuf *) GTK_VALUE_POINTER (*arg));
break;
case ARG_TILE_WIDTH:
nautilus_image_set_tile_width (image, GTK_VALUE_INT (*arg));
break;
case ARG_TILE_HEIGHT:
nautilus_image_set_tile_height (image, GTK_VALUE_INT (*arg));
break;
case ARG_TILE_MODE_VERTICAL:
nautilus_image_set_tile_mode_vertical (image, GTK_VALUE_UINT (*arg));
break;
case ARG_TILE_MODE_HORIZONTAL:
nautilus_image_set_tile_mode_horizontal (image, GTK_VALUE_UINT (*arg));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
break;
default:
g_assert_not_reached ();
}
}
static void
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_get_arg (GtkObject *object,
GtkArg *arg,
guint arg_id)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
NautilusImage *image;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
g_return_if_fail (NAUTILUS_IS_IMAGE (object));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
image = NAUTILUS_IMAGE (object);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
switch (arg_id)
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
case ARG_IS_SMOOTH:
GTK_VALUE_BOOL (*arg) = nautilus_image_get_is_smooth (image);
break;
case ARG_PIXBUF_OPACITY:
GTK_VALUE_INT (*arg) = nautilus_image_get_pixbuf_opacity (image);
break;
case ARG_BACKGROUND_MODE:
GTK_VALUE_UINT (*arg) = nautilus_image_get_background_mode (image);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
break;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
case ARG_PIXBUF:
GTK_VALUE_POINTER (*arg) = nautilus_image_get_pixbuf (image);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
break;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
case ARG_TILE_OPACITY:
GTK_VALUE_INT (*arg) = nautilus_image_get_tile_opacity (image);
break;
case ARG_TILE_PIXBUF:
GTK_VALUE_POINTER (*arg) = nautilus_image_get_tile_pixbuf (image);
break;
case ARG_TILE_WIDTH:
GTK_VALUE_INT (*arg) = nautilus_image_get_tile_width (image);
break;
case ARG_TILE_HEIGHT:
GTK_VALUE_INT (*arg) = nautilus_image_get_tile_height (image);
break;
case ARG_TILE_MODE_VERTICAL:
GTK_VALUE_UINT (*arg) = nautilus_image_get_tile_mode_vertical (image);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
break;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
case ARG_TILE_MODE_HORIZONTAL:
GTK_VALUE_UINT (*arg) = nautilus_image_get_tile_mode_horizontal (image);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
break;
default:
g_assert_not_reached ();
}
}
/* GtkWidgetClass methods */
static void
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_size_request (GtkWidget *widget,
GtkRequisition *requisition)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
NautilusImage *image;
ArtIRect pixbuf_frame;
ArtIRect tile_frame;
ArtIRect preferred_frame;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
g_return_if_fail (NAUTILUS_IS_IMAGE (widget));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
g_return_if_fail (requisition != NULL);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
image = NAUTILUS_IMAGE (widget);
pixbuf_frame = image_get_pixbuf_frame (image);
tile_frame = image_get_tile_frame (image);
preferred_frame = nautilus_smooth_widget_get_preferred_frame (widget,
&pixbuf_frame,
&tile_frame,
image->detail->tile_width,
image->detail->tile_height);
requisition->width = preferred_frame.x1;
requisition->height = preferred_frame.y1;
}
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
static void
image_paint_pixbuf_callback (GtkWidget *widget,
GdkDrawable *destination_drawable,
GdkGC *gc,
int source_x,
int source_y,
const ArtIRect *area,
gpointer callback_data)
{
NautilusImage *image;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
g_return_if_fail (NAUTILUS_IS_IMAGE (widget));
g_return_if_fail (GTK_WIDGET_REALIZED (widget));
g_return_if_fail (destination_drawable != NULL);
g_return_if_fail (gc != NULL);
g_return_if_fail (area != NULL && !art_irect_empty (area));
image = NAUTILUS_IMAGE (widget);
2000-08-25 10:40:10 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
g_return_if_fail (nautilus_gdk_pixbuf_is_valid (image->detail->pixbuf));
nautilus_gdk_pixbuf_draw_to_drawable (image->detail->pixbuf,
destination_drawable,
gc,
source_x,
source_y,
area,
GDK_RGB_DITHER_NONE,
GDK_PIXBUF_ALPHA_BILEVEL,
NAUTILUS_STANDARD_ALPHA_THRESHHOLD);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
}
static void
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
image_composite_pixbuf_callback (GtkWidget *widget,
GdkPixbuf *destination_pixbuf,
int source_x,
int source_y,
const ArtIRect *area,
int opacity,
gpointer callback_data)
{
NautilusImage *image;
g_return_if_fail (NAUTILUS_IS_IMAGE (widget));
g_return_if_fail (GTK_WIDGET_REALIZED (widget));
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
g_return_if_fail (destination_pixbuf != NULL);
g_return_if_fail (area != NULL && !art_irect_empty (area));
image = NAUTILUS_IMAGE (widget);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
g_return_if_fail (nautilus_gdk_pixbuf_is_valid (image->detail->pixbuf));
nautilus_gdk_pixbuf_draw_to_pixbuf_alpha (image->detail->pixbuf,
destination_pixbuf,
source_x,
source_y,
area,
opacity,
GDK_INTERP_BILINEAR);
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
static int
nautilus_image_expose_event (GtkWidget *widget,
GdkEventExpose *event)
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
NautilusImage *image;
ArtIRect dirty_area;
ArtIRect screen_dirty_area;
ArtIRect pixbuf_bounds;
ArtIRect tile_bounds;
g_return_val_if_fail (NAUTILUS_IS_IMAGE (widget), TRUE);
g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), TRUE);
g_return_val_if_fail (event != NULL, TRUE);
g_return_val_if_fail (event->window == widget->window, TRUE);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
image = NAUTILUS_IMAGE (widget);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
pixbuf_bounds = image_get_pixbuf_bounds (image);
tile_bounds = nautilus_smooth_widget_get_tile_bounds (widget,
image->detail->tile_pixbuf,
image->detail->tile_width,
image->detail->tile_height);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Check for the dumb case when theres nothing to do */
if (image->detail->pixbuf == NULL && image->detail->tile_pixbuf == NULL) {
return TRUE;
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Clip the dirty area to the screen */
dirty_area = nautilus_irect_assign_gdk_rectangle (&event->area);
screen_dirty_area = nautilus_irect_gdk_window_clip_dirty_area_to_screen (event->window,
&dirty_area);
/* Nothing to do */
if (art_irect_empty (&screen_dirty_area)) {
return TRUE;
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* Paint ourselves */
nautilus_smooth_widget_paint (widget,
widget->style->white_gc,
image->detail->is_smooth,
image->detail->background_mode,
image->detail->solid_background_color,
image->detail->tile_pixbuf,
&tile_bounds,
image->detail->tile_opacity,
image->detail->tile_mode_vertical,
image->detail->tile_mode_horizontal,
&pixbuf_bounds,
image->detail->pixbuf_opacity,
&screen_dirty_area,
image_paint_pixbuf_callback,
image_composite_pixbuf_callback,
NULL);
return TRUE;
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/* NautilusImage signals */
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
static void
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_set_is_smooth_signal (GtkWidget *widget,
gboolean is_smooth)
{
g_return_if_fail (NAUTILUS_IS_IMAGE (widget));
nautilus_image_set_is_smooth (NAUTILUS_IMAGE (widget), is_smooth);
}
/* Private NautilusImage methods */
static ArtIRect
image_get_pixbuf_frame (const NautilusImage *image)
{
ArtIRect pixbuf_frame;
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), NAUTILUS_ART_IRECT_EMPTY);
if (!image->detail->pixbuf) {
return NAUTILUS_ART_IRECT_EMPTY;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
pixbuf_frame.x0 = 0;
pixbuf_frame.y0 = 0;
pixbuf_frame.x1 = gdk_pixbuf_get_width (image->detail->pixbuf);
pixbuf_frame.y1 = gdk_pixbuf_get_height (image->detail->pixbuf);
return pixbuf_frame;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
static ArtIRect
image_get_pixbuf_bounds (const NautilusImage *image)
{
ArtIRect pixbuf_frame;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
ArtIRect pixbuf_bounds;
ArtIRect bounds;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), NAUTILUS_ART_IRECT_EMPTY);
pixbuf_frame = image_get_pixbuf_frame (image);
if (art_irect_empty (&pixbuf_frame)) {
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
return NAUTILUS_ART_IRECT_EMPTY;
}
bounds = nautilus_irect_gtk_widget_get_bounds (GTK_WIDGET (image));
pixbuf_bounds = nautilus_art_irect_align (&bounds,
pixbuf_frame.x1,
pixbuf_frame.y1,
GTK_MISC (image)->xalign,
GTK_MISC (image)->yalign,
GTK_MISC (image)->xpad,
GTK_MISC (image)->ypad);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
return pixbuf_bounds;
}
static ArtIRect
image_get_tile_frame (const NautilusImage *image)
{
ArtIRect tile_frame;
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), NAUTILUS_ART_IRECT_EMPTY);
if (!image->detail->tile_pixbuf) {
return NAUTILUS_ART_IRECT_EMPTY;
}
tile_frame.x0 = 0;
tile_frame.y0 = 0;
tile_frame.x1 = gdk_pixbuf_get_width (image->detail->tile_pixbuf);
tile_frame.y1 = gdk_pixbuf_get_height (image->detail->tile_pixbuf);
return tile_frame;
}
/* Public NautilusImage methods */
GtkWidget*
nautilus_image_new (const char *file_name)
{
NautilusImage *image;
image = NAUTILUS_IMAGE (gtk_widget_new (nautilus_image_get_type (), NULL));
if (file_name != NULL) {
nautilus_image_set_pixbuf_from_file_name (image, file_name);
}
return GTK_WIDGET (image);
}
void
nautilus_image_set_is_smooth (NautilusImage *image,
gboolean is_smooth)
{
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
if (image->detail->is_smooth == is_smooth) {
return;
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
image->detail->is_smooth = is_smooth;
/* We call queue_resize() instead queue_draw() because
* we want the widget's background to be cleared of
* the previous pixbuf, even though the geometry of
* the image does not change.
*/
gtk_widget_queue_resize (GTK_WIDGET (image));
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
gboolean
nautilus_image_get_is_smooth (const NautilusImage *image)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), FALSE);
return image->detail->is_smooth;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
/**
* nautilus_image_set_tile_pixbuf:
*
* @image: A NautilusImage
* @pixbuf: The new tile pixbuf
*
* Change the tile pixbuf. A 'pixbuf' value of NULL, means dont use a
* tile pixbuf - this is the default behavior for the widget.
*/
void
nautilus_image_set_tile_pixbuf (NautilusImage *image,
GdkPixbuf *pixbuf)
{
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
if (pixbuf != image->detail->tile_pixbuf) {
nautilus_gdk_pixbuf_unref_if_not_null (image->detail->tile_pixbuf);
nautilus_gdk_pixbuf_ref_if_not_null (pixbuf);
image->detail->tile_pixbuf = pixbuf;
gtk_widget_queue_draw (GTK_WIDGET (image));
}
}
/**
* nautilus_image_get_tile_pixbuf:
*
* @image: A NautilusImage
*
* Return value: A reference to the tile_pixbuf. Needs to be unreferenced with
* gdk_pixbuf_unref()
*/
GdkPixbuf*
nautilus_image_get_tile_pixbuf (const NautilusImage *image)
{
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), NULL);
nautilus_gdk_pixbuf_ref_if_not_null (image->detail->tile_pixbuf);
return image->detail->tile_pixbuf;
}
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
void
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_set_pixbuf (NautilusImage *image,
GdkPixbuf *pixbuf)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
if (pixbuf != image->detail->pixbuf) {
Tasks: 1612, 1274, 1511 and 1588. * libnautilus-extensions/nautilus-scalable-font.c: * libnautilus-extensions/nautilus-scalable-font.h: New GtkObject subclass that provdes a simple interface to raph's librsvg FreeType2 bases anti aliased text rendering. * libnautilus-extensions/nautilus-font-picker.c: * libnautilus-extensions/nautilus-font-picker.h: New font picker class. I will soon use it in the preferences dialog instead of the current one. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: New virtual widget class that encapsulates the details of finding a suitable background for compositing pixbufs. * libnautilus-extensions/nautilus-image.c: * libnautilus-extensions/nautilus-image.h: Rewritten NautilusImage class. Took out all the label stuff, which lives in its own class. Now subclassed from NautilusBufferedWidget so that background the image gets composited on is always correct and groks NautilusBackground. * libnautilus-extensions/nautilus-label.c: * libnautilus-extensions/nautilus-label.h: New NautilusLabel widget class. A label widget that is capable of displaying anti aliased text composited over a complex background. The background can be installed as NautilusBackground on a NautilusLabel widget or any of its ancestors. The best background will automatically be found and used by the widget. * services/nautilus-dependant-shared/shared-service-widgets.c, * services/nautilus-dependant-shared/shared-service-widgets.h, * services/startup/nautilus-view/nautilus-service-startup-view.c: Update for changes in the NautilusImage api. Unfortunately, these components are slightly broken now cause of the NautilusImage changes. I will fix them shortly. * libnautilus-extensions/nautilus-string-map.c: * libnautilus-extensions/nautilus-string-map.h: New simple class to map an arbitrary number of strings to a single string. * libnautilus-extensions/nautilus-lib-self-check-functions.h: Add tests for the new string map class. * libnautilus-extensions/Makefile.am: Build the new widgets. Also add some depedencies on the static libraries we link into this beast. This way, libnautilus-extensions will rebuild of one if its dependency static libs is touched. * test/.cvsignore, * test/Makefile.am, * test/test-nautilus-font-picker.c, * test/test-nautilus-font.c, * test/test-nautilus-image.c, * test/test-nautilus-label.c: Update test programs for new widgets.
2000-08-21 14:16:54 +00:00
nautilus_gdk_pixbuf_unref_if_not_null (image->detail->pixbuf);
nautilus_gdk_pixbuf_ref_if_not_null (pixbuf);
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
image->detail->pixbuf = pixbuf;
reviewed by: Rebecca Schulman <rebecka@eazel.com> Fixed bug 4899 (Bookmark for nonexistent file can cause infinite loop at startup) Changed NautilusBookmark's internal logic so that it doesn't keep around a file object for known non-existent URIs. The trick is to get it to notice when the URI is no longer non-existent and get a fresh file object then. This is done imperfectly, but the new symptom is very minor and deferrable (wrote it up as bug 4906). * libnautilus-extensions/nautilus-bookmark.c: (nautilus_bookmark_connect_file): Don't get a new NautilusFile object if we know the URI doesn't exist; instead just set the missing-bookmark icon. Also made it safe to call this routine when there's already a file object in hand (just bails out early). (nautilus_bookmark_get_icon), (nautilus_bookmark_get_uri): Call nautilus_bookmark_connect_file so that it will connect to a now-existing file if possible (and thus get the right icon). Since callers that try to activate the bookmark will call get_uri, one way to kick a reincarnated bookmark's icon into appearing is to select it in a menu. (nautilus_bookmark_get_pixbuf): Call nautilus_bookmark_get_icon to benefit from its connect_file logic. Fixed bug 3847 (Icon in properties window flashes while folder count increments) * libnautilus-extensions/nautilus-image.c: (nautilus_image_set_pixbuf): Don't call gtk_widget_queue_resize if the pixbuf hasn't changed. Fixed bug 1454 (Properties dialog needs mucho tweaking) Mostly this was changes to match Arlo's design that he gave me ages ago. I also fixed a few other problems. * libnautilus-extensions/nautilus-file.c: (nautilus_file_get_date_as_string): Change format of date strings from "<date> <time>" to "<date> at <time>" to match Arlo's design. * src/file-manager/fm-properties-window.c: (attach_label): Now handles requests for a bold font. (attach_value_label): Renamed from attach_left_aligned_label, use bold font here. (attach_value_field),(attach_directory_contents_value_field): updated for name change. (attach_right_aligned_label): Removed, guts moved to caller. (attach_title_field): Use bold font here. (attach_option_menu): New helper function to share code between attach_group_menu and attach_owner_menu; now uses gtk_alignment to make the menu be minimally-sized and left-aligned. (attach_group_menu), (attach_owner_menu): Use attach_option_menu. (attach_separator): New helper function to install a separator across both columns of a properties window table. (create_basic_page): Use gtk_alignment to make the icon right-aligned; make the blank row above date rows be standard height. (create_emblems_page): Changed layout so name appears below emblem rather than to its right; this matches Customize window and allows the Properties window to be a smaller width, which looks much better for the other panes. Also, the emblems are now layed out lrtb instead of tblr. (add_permissions_column_label): Make these labels bold. (add_special_execution_flags): Attach a separator. (get_adjusted_permissions_row): Helper function to account for the "special flags" rows, which are not always displayed. (create_permissions_page): Deploy get_adjusted_permissions_row wherever a raw row number was used; insert separators. (create_properties_window): Allow window to be stretched, since the emblems don't all fit at initial window height (so user can stretch rather than scrolling if desired).
2000-11-30 23:39:36 +00:00
gtk_widget_queue_resize (GTK_WIDGET (image));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
}
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
void
nautilus_image_set_pixbuf_from_file_name (NautilusImage *image,
const char *file_name)
{
GdkPixbuf *pixbuf;
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
g_return_if_fail (file_name != NULL);
pixbuf = gdk_pixbuf_new_from_file (file_name);
if (pixbuf != NULL) {
nautilus_image_set_pixbuf (image, pixbuf);
gdk_pixbuf_unref (pixbuf);
}
}
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
GdkPixbuf*
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
nautilus_image_get_pixbuf (const NautilusImage *image)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), NULL);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
Tasks: 1612, 1274, 1511 and 1588. * libnautilus-extensions/nautilus-scalable-font.c: * libnautilus-extensions/nautilus-scalable-font.h: New GtkObject subclass that provdes a simple interface to raph's librsvg FreeType2 bases anti aliased text rendering. * libnautilus-extensions/nautilus-font-picker.c: * libnautilus-extensions/nautilus-font-picker.h: New font picker class. I will soon use it in the preferences dialog instead of the current one. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: New virtual widget class that encapsulates the details of finding a suitable background for compositing pixbufs. * libnautilus-extensions/nautilus-image.c: * libnautilus-extensions/nautilus-image.h: Rewritten NautilusImage class. Took out all the label stuff, which lives in its own class. Now subclassed from NautilusBufferedWidget so that background the image gets composited on is always correct and groks NautilusBackground. * libnautilus-extensions/nautilus-label.c: * libnautilus-extensions/nautilus-label.h: New NautilusLabel widget class. A label widget that is capable of displaying anti aliased text composited over a complex background. The background can be installed as NautilusBackground on a NautilusLabel widget or any of its ancestors. The best background will automatically be found and used by the widget. * services/nautilus-dependant-shared/shared-service-widgets.c, * services/nautilus-dependant-shared/shared-service-widgets.h, * services/startup/nautilus-view/nautilus-service-startup-view.c: Update for changes in the NautilusImage api. Unfortunately, these components are slightly broken now cause of the NautilusImage changes. I will fix them shortly. * libnautilus-extensions/nautilus-string-map.c: * libnautilus-extensions/nautilus-string-map.h: New simple class to map an arbitrary number of strings to a single string. * libnautilus-extensions/nautilus-lib-self-check-functions.h: Add tests for the new string map class. * libnautilus-extensions/Makefile.am: Build the new widgets. Also add some depedencies on the static libraries we link into this beast. This way, libnautilus-extensions will rebuild of one if its dependency static libs is touched. * test/.cvsignore, * test/Makefile.am, * test/test-nautilus-font-picker.c, * test/test-nautilus-font.c, * test/test-nautilus-image.c, * test/test-nautilus-label.c: Update test programs for new widgets.
2000-08-21 14:16:54 +00:00
nautilus_gdk_pixbuf_ref_if_not_null (image->detail->pixbuf);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
return image->detail->pixbuf;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
}
void
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_set_pixbuf_opacity (NautilusImage *image,
int pixbuf_opacity)
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
{
Rename NautilusGraphic to NautilusImage everywhere. * components/services/install/nautilus-view/nautilus-service-install- view.c: (generate_install_form), (create_image_widget), (create_title_widget), (create_middle_title_widget): * components/services/login/nautilus-view/nautilus-login-view.c: (generate_login_form), (create_image_widget), (create_title_widget): * components/services/startup/nautilus-view/nautilus-service-startup- view.c: (generate_startup_form), (create_image_widget), (generate_form_logo): * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: * libnautilus-extensions/nautilus-graphic.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_realize), (nautilus_image_unrealize), (nautilus_image_draw), (nautilus_image_size_allocate), (nautilus_image_size_request), (nautilus_image_map), (nautilus_image_unmap), (nautilus_image_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_image_new), (nautilus_image_set_background_pixbuf), (nautilus_image_get_background_pixbuf), (nautilus_image_set_background_type), (nautilus_image_get_background_type), (nautilus_image_set_background_color), (nautilus_image_get_background_color), (nautilus_image_set_placement_type), (nautilus_image_get_placement_type), (nautilus_image_set_pixbuf), (nautilus_image_get_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_label_text), (nautilus_image_get_label_text), (nautilus_image_set_label_font), (nautilus_image_get_label_font), (nautilus_image_set_left_offset), (nautilus_image_set_right_offset), (nautilus_image_set_top_offset), (nautilus_image_set_bottom_offset), (nautilus_image_set_extra_width), (nautilus_image_set_extra_height): * libnautilus-extensions/nautilus-image.h: * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: * test/test-nautilus-image.c: (create_background), (create_pixbuf), (create_image), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Rename NautilusGraphic to NautilusImage everywhere.
2000-07-14 18:42:41 +00:00
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
g_return_if_fail (pixbuf_opacity >= NAUTILUS_OPACITY_FULLY_TRANSPARENT);
g_return_if_fail (pixbuf_opacity <= NAUTILUS_OPACITY_FULLY_OPAQUE);
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
if (image->detail->pixbuf_opacity == pixbuf_opacity) {
return;
}
image->detail->pixbuf_opacity = pixbuf_opacity;
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
Tasks: 1612, 1274, 1511 and 1588. * libnautilus-extensions/nautilus-scalable-font.c: * libnautilus-extensions/nautilus-scalable-font.h: New GtkObject subclass that provdes a simple interface to raph's librsvg FreeType2 bases anti aliased text rendering. * libnautilus-extensions/nautilus-font-picker.c: * libnautilus-extensions/nautilus-font-picker.h: New font picker class. I will soon use it in the preferences dialog instead of the current one. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: New virtual widget class that encapsulates the details of finding a suitable background for compositing pixbufs. * libnautilus-extensions/nautilus-image.c: * libnautilus-extensions/nautilus-image.h: Rewritten NautilusImage class. Took out all the label stuff, which lives in its own class. Now subclassed from NautilusBufferedWidget so that background the image gets composited on is always correct and groks NautilusBackground. * libnautilus-extensions/nautilus-label.c: * libnautilus-extensions/nautilus-label.h: New NautilusLabel widget class. A label widget that is capable of displaying anti aliased text composited over a complex background. The background can be installed as NautilusBackground on a NautilusLabel widget or any of its ancestors. The best background will automatically be found and used by the widget. * services/nautilus-dependant-shared/shared-service-widgets.c, * services/nautilus-dependant-shared/shared-service-widgets.h, * services/startup/nautilus-view/nautilus-service-startup-view.c: Update for changes in the NautilusImage api. Unfortunately, these components are slightly broken now cause of the NautilusImage changes. I will fix them shortly. * libnautilus-extensions/nautilus-string-map.c: * libnautilus-extensions/nautilus-string-map.h: New simple class to map an arbitrary number of strings to a single string. * libnautilus-extensions/nautilus-lib-self-check-functions.h: Add tests for the new string map class. * libnautilus-extensions/Makefile.am: Build the new widgets. Also add some depedencies on the static libraries we link into this beast. This way, libnautilus-extensions will rebuild of one if its dependency static libs is touched. * test/.cvsignore, * test/Makefile.am, * test/test-nautilus-font-picker.c, * test/test-nautilus-font.c, * test/test-nautilus-image.c, * test/test-nautilus-label.c: Update test programs for new widgets.
2000-08-21 14:16:54 +00:00
gtk_widget_queue_draw (GTK_WIDGET (image));
Add arlo's services title icons. * components/services/startup/nautilus-view/icons/Makefile.am, eazel-services-logo.png, eazel-services-logo-tile.png: Add arlo's services title icons. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-graphic.c: (nautilus_graphic_initialize_class), (nautilus_graphic_initialize), (nautilus_graphic_destroy), (nautilus_graphic_set_arg), (nautilus_graphic_get_arg), (nautilus_graphic_realize), (nautilus_graphic_unrealize), (nautilus_graphic_draw), (nautilus_graphic_size_allocate), (nautilus_graphic_size_request), (nautilus_graphic_map), (nautilus_graphic_unmap), (nautilus_graphic_expose), (ensure_buffer_size), (create_child_window), (nautilus_gdk_create_copy_area_gc), (nautilus_gdk_pixbuf_render_to_drawable), (nautilus_gdk_pixbuf_render_to_pixbuf), (nautilus_gdk_pixbuf_render_to_pixbuf_alpha), (gdk_string_dimensions), (nautilus_gdk_pixbuf_set_to_color), (nautilus_gdk_pixbuf_tile), (nautilus_gdk_pixbuf_tile_alpha), (nautilus_graphic_new), (nautilus_graphic_set_background_pixbuf), (nautilus_graphic_get_background_pixbuf), (nautilus_graphic_set_background_type), (nautilus_graphic_get_background_type), (nautilus_graphic_set_background_color), (nautilus_graphic_get_background_color), (nautilus_graphic_set_placement_type), (nautilus_graphic_get_placement_type), (nautilus_graphic_set_pixbuf), (nautilus_graphic_get_pixbuf), (nautilus_graphic_set_overall_alpha), (nautilus_graphic_set_label_text), (nautilus_graphic_get_label_text), (nautilus_graphic_set_label_font), (nautilus_graphic_get_label_font): * libnautilus-extensions/nautilus-graphic.h: Add NautilusGraphic widget to build. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-graphic.c: (create_background), (create_pixbuf), (create_graphic), (alpha_scale_value_changed), (red_color_value_changed), (green_color_value_changed), (blue_color_value_changed), (toggle_background_type_callback), (create_color_scale), (main): Add test for NautilusGraphic widget.
2000-07-10 13:14:58 +00:00
}
2000-08-25 10:40:10 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
int
nautilus_image_get_pixbuf_opacity (const NautilusImage *image)
{
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), NAUTILUS_OPACITY_FULLY_OPAQUE);
return image->detail->pixbuf_opacity;
}
void
nautilus_image_set_tile_opacity (NautilusImage *image,
int tile_opacity)
{
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
g_return_if_fail (tile_opacity >= NAUTILUS_OPACITY_FULLY_TRANSPARENT);
g_return_if_fail (tile_opacity <= NAUTILUS_OPACITY_FULLY_OPAQUE);
if (image->detail->tile_opacity == tile_opacity) {
return;
}
image->detail->tile_opacity = tile_opacity;
gtk_widget_queue_draw (GTK_WIDGET (image));
}
int
nautilus_image_get_tile_opacity (const NautilusImage *image)
{
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), NAUTILUS_OPACITY_FULLY_OPAQUE);
return image->detail->tile_opacity;
}
void
nautilus_image_set_tile_width (NautilusImage *image,
int tile_width)
{
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
g_return_if_fail (tile_width >= NAUTILUS_SMOOTH_TILE_EXTENT_ONE_STEP);
if (image->detail->tile_width == tile_width) {
return;
}
image->detail->tile_width = tile_width;
gtk_widget_queue_resize (GTK_WIDGET (image));
}
2000-08-25 10:40:10 +00:00
/**
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
* nautilus_image_get_tile_width:
2000-08-25 10:40:10 +00:00
*
* @image: A NautilusImage
*
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
* Return value: The tile width.
2000-08-25 10:40:10 +00:00
*/
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
int
nautilus_image_get_tile_width (const NautilusImage *image)
{
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), 0);
return image->detail->tile_width;
}
2000-08-25 10:40:10 +00:00
void
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_set_tile_height (NautilusImage *image,
int tile_height)
2000-08-25 10:40:10 +00:00
{
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
g_return_if_fail (tile_height >= NAUTILUS_SMOOTH_TILE_EXTENT_ONE_STEP);
2000-08-25 10:40:10 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
if (image->detail->tile_height == tile_height) {
return;
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
image->detail->tile_height = tile_height;
gtk_widget_queue_resize (GTK_WIDGET (image));
2000-08-25 10:40:10 +00:00
}
/**
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
* nautilus_image_get_tile_height:
2000-08-25 10:40:10 +00:00
*
* @image: A NautilusImage
*
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
* Return value: The tile height.
2000-08-25 10:40:10 +00:00
*/
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
int
nautilus_image_get_tile_height (const NautilusImage *image)
{
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), 0);
return image->detail->tile_height;
}
void
nautilus_image_set_tile_mode_vertical (NautilusImage *image,
NautilusSmoothTileMode tile_mode_vertical)
{
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
g_return_if_fail (tile_mode_vertical >= NAUTILUS_SMOOTH_TILE_SELF);
g_return_if_fail (tile_mode_vertical <= NAUTILUS_SMOOTH_TILE_ANCESTOR);
if (image->detail->tile_mode_vertical == tile_mode_vertical) {
return;
}
image->detail->tile_mode_vertical = tile_mode_vertical;
gtk_widget_queue_draw (GTK_WIDGET (image));
}
NautilusSmoothTileMode
nautilus_image_get_tile_mode_vertical (const NautilusImage *image)
2000-08-25 10:40:10 +00:00
{
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), 0);
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
return image->detail->tile_mode_vertical;
}
void
nautilus_image_set_tile_mode_horizontal (NautilusImage *image,
NautilusSmoothTileMode tile_mode_horizontal)
{
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
g_return_if_fail (tile_mode_horizontal >= NAUTILUS_SMOOTH_TILE_SELF);
g_return_if_fail (tile_mode_horizontal <= NAUTILUS_SMOOTH_TILE_ANCESTOR);
2000-08-25 10:40:10 +00:00
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
if (image->detail->tile_mode_horizontal == tile_mode_horizontal) {
return;
}
image->detail->tile_mode_horizontal = tile_mode_horizontal;
gtk_widget_queue_draw (GTK_WIDGET (image));
}
NautilusSmoothTileMode
nautilus_image_get_tile_mode_horizontal (const NautilusImage *image)
{
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), 0);
return image->detail->tile_mode_horizontal;
}
void
nautilus_image_set_tile_pixbuf_from_file_name (NautilusImage *image,
const char *tile_file_name)
{
GdkPixbuf *tile_pixbuf;
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
g_return_if_fail (tile_file_name != NULL);
tile_pixbuf = gdk_pixbuf_new_from_file (tile_file_name);
if (tile_pixbuf != NULL) {
nautilus_image_set_tile_pixbuf (image, tile_pixbuf);
gdk_pixbuf_unref (tile_pixbuf);
}
}
void
nautilus_image_set_background_mode (NautilusImage *image,
NautilusSmoothBackgroundMode background_mode)
{
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
g_return_if_fail (background_mode >= NAUTILUS_SMOOTH_BACKGROUND_GTK);
g_return_if_fail (background_mode <= NAUTILUS_SMOOTH_BACKGROUND_SOLID_COLOR);
if (image->detail->background_mode == background_mode) {
return;
}
image->detail->background_mode = background_mode;
gtk_widget_queue_draw (GTK_WIDGET (image));
}
NautilusSmoothBackgroundMode
nautilus_image_get_background_mode (const NautilusImage *image)
{
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), 0);
return image->detail->background_mode;
}
void
nautilus_image_set_solid_background_color (NautilusImage *image,
guint32 solid_background_color)
{
g_return_if_fail (NAUTILUS_IS_IMAGE (image));
if (image->detail->solid_background_color == solid_background_color) {
return;
}
image->detail->solid_background_color = solid_background_color;
gtk_widget_queue_draw (GTK_WIDGET (image));
}
guint32
nautilus_image_get_solid_background_color (const NautilusImage *image)
{
g_return_val_if_fail (NAUTILUS_IS_IMAGE (image), 0);
return image->detail->solid_background_color;
2000-08-25 10:40:10 +00:00
}
Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/eazel-services-constants.h: Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/Makefile.am: * components/services/nautilus-dependent-shared/eazel-services-extensions.c: (pixbuf_new_from_name), (eazel_services_image_new), (eazel_services_label_new): * components/services/nautilus-dependent-shared/eazel-services-extensions.h: Add a place to put shared services extensions. * components/services/nautilus-dependent-shared/eazel-services-footer.c: (footer_item_new), (footer_remainder_new), (eazel_services_footer_update): * components/services/nautilus-dependent-shared/eazel-services-header.c: (eazel_services_header_new): * components/services/nautilus-dependent-shared/test-footer-header.c: Remove a bunch of duplicated code and put it in a shared extensions location. Make the footer real. Add an item_clicked signal to the footer. * components/services/summary/nautilus-view/nautilus-summary-view.c: Hook up the footer for item clicks. * libnautilus-extensions/nautilus-image.c: (nautilus_image_new_loaded): * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_new_loaded): * libnautilus-extensions/nautilus-label.h: Add constructors that take a bunch of arguments for the various widgets attributes. Makes the widgets easier to use for callers that need to tweak many attributes (like eazel services).
2000-10-25 15:39:39 +00:00
/**
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
* nautilus_image_new_solid:
Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/eazel-services-constants.h: Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/Makefile.am: * components/services/nautilus-dependent-shared/eazel-services-extensions.c: (pixbuf_new_from_name), (eazel_services_image_new), (eazel_services_label_new): * components/services/nautilus-dependent-shared/eazel-services-extensions.h: Add a place to put shared services extensions. * components/services/nautilus-dependent-shared/eazel-services-footer.c: (footer_item_new), (footer_remainder_new), (eazel_services_footer_update): * components/services/nautilus-dependent-shared/eazel-services-header.c: (eazel_services_header_new): * components/services/nautilus-dependent-shared/test-footer-header.c: Remove a bunch of duplicated code and put it in a shared extensions location. Make the footer real. Add an item_clicked signal to the footer. * components/services/summary/nautilus-view/nautilus-summary-view.c: Hook up the footer for item clicks. * libnautilus-extensions/nautilus-image.c: (nautilus_image_new_loaded): * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_new_loaded): * libnautilus-extensions/nautilus-label.h: Add constructors that take a bunch of arguments for the various widgets attributes. Makes the widgets easier to use for callers that need to tweak many attributes (like eazel services).
2000-10-25 15:39:39 +00:00
*
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
* @pixbuf: A GdkPixbuf or NULL.
* @xalign: Horizontal alignment.
* @yalign: Vertical alignment.
* @xpadding: Horizontal padding.
* @ypadding: Vertical padding.
Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/eazel-services-constants.h: Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/Makefile.am: * components/services/nautilus-dependent-shared/eazel-services-extensions.c: (pixbuf_new_from_name), (eazel_services_image_new), (eazel_services_label_new): * components/services/nautilus-dependent-shared/eazel-services-extensions.h: Add a place to put shared services extensions. * components/services/nautilus-dependent-shared/eazel-services-footer.c: (footer_item_new), (footer_remainder_new), (eazel_services_footer_update): * components/services/nautilus-dependent-shared/eazel-services-header.c: (eazel_services_header_new): * components/services/nautilus-dependent-shared/test-footer-header.c: Remove a bunch of duplicated code and put it in a shared extensions location. Make the footer real. Add an item_clicked signal to the footer. * components/services/summary/nautilus-view/nautilus-summary-view.c: Hook up the footer for item clicks. * libnautilus-extensions/nautilus-image.c: (nautilus_image_new_loaded): * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_new_loaded): * libnautilus-extensions/nautilus-label.h: Add constructors that take a bunch of arguments for the various widgets attributes. Makes the widgets easier to use for callers that need to tweak many attributes (like eazel services).
2000-10-25 15:39:39 +00:00
* @background_color: Background color.
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
* @tile_pixbuf: A GdkPixbuf or NULL.
Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/eazel-services-constants.h: Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/Makefile.am: * components/services/nautilus-dependent-shared/eazel-services-extensions.c: (pixbuf_new_from_name), (eazel_services_image_new), (eazel_services_label_new): * components/services/nautilus-dependent-shared/eazel-services-extensions.h: Add a place to put shared services extensions. * components/services/nautilus-dependent-shared/eazel-services-footer.c: (footer_item_new), (footer_remainder_new), (eazel_services_footer_update): * components/services/nautilus-dependent-shared/eazel-services-header.c: (eazel_services_header_new): * components/services/nautilus-dependent-shared/test-footer-header.c: Remove a bunch of duplicated code and put it in a shared extensions location. Make the footer real. Add an item_clicked signal to the footer. * components/services/summary/nautilus-view/nautilus-summary-view.c: Hook up the footer for item clicks. * libnautilus-extensions/nautilus-image.c: (nautilus_image_new_loaded): * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_new_loaded): * libnautilus-extensions/nautilus-label.h: Add constructors that take a bunch of arguments for the various widgets attributes. Makes the widgets easier to use for callers that need to tweak many attributes (like eazel services).
2000-10-25 15:39:39 +00:00
*
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
* Create an image with a solid background.
*
* Return value: The newly allocated NautilusImage with the
* given attributes.
Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/eazel-services-constants.h: Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/Makefile.am: * components/services/nautilus-dependent-shared/eazel-services-extensions.c: (pixbuf_new_from_name), (eazel_services_image_new), (eazel_services_label_new): * components/services/nautilus-dependent-shared/eazel-services-extensions.h: Add a place to put shared services extensions. * components/services/nautilus-dependent-shared/eazel-services-footer.c: (footer_item_new), (footer_remainder_new), (eazel_services_footer_update): * components/services/nautilus-dependent-shared/eazel-services-header.c: (eazel_services_header_new): * components/services/nautilus-dependent-shared/test-footer-header.c: Remove a bunch of duplicated code and put it in a shared extensions location. Make the footer real. Add an item_clicked signal to the footer. * components/services/summary/nautilus-view/nautilus-summary-view.c: Hook up the footer for item clicks. * libnautilus-extensions/nautilus-image.c: (nautilus_image_new_loaded): * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_new_loaded): * libnautilus-extensions/nautilus-label.h: Add constructors that take a bunch of arguments for the various widgets attributes. Makes the widgets easier to use for callers that need to tweak many attributes (like eazel services).
2000-10-25 15:39:39 +00:00
*/
GtkWidget *
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_new_solid (GdkPixbuf *pixbuf,
float xalign,
float yalign,
int xpadding,
int ypadding,
guint32 background_color,
GdkPixbuf *tile_pixbuf)
Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/eazel-services-constants.h: Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/Makefile.am: * components/services/nautilus-dependent-shared/eazel-services-extensions.c: (pixbuf_new_from_name), (eazel_services_image_new), (eazel_services_label_new): * components/services/nautilus-dependent-shared/eazel-services-extensions.h: Add a place to put shared services extensions. * components/services/nautilus-dependent-shared/eazel-services-footer.c: (footer_item_new), (footer_remainder_new), (eazel_services_footer_update): * components/services/nautilus-dependent-shared/eazel-services-header.c: (eazel_services_header_new): * components/services/nautilus-dependent-shared/test-footer-header.c: Remove a bunch of duplicated code and put it in a shared extensions location. Make the footer real. Add an item_clicked signal to the footer. * components/services/summary/nautilus-view/nautilus-summary-view.c: Hook up the footer for item clicks. * libnautilus-extensions/nautilus-image.c: (nautilus_image_new_loaded): * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_new_loaded): * libnautilus-extensions/nautilus-label.h: Add constructors that take a bunch of arguments for the various widgets attributes. Makes the widgets easier to use for callers that need to tweak many attributes (like eazel services).
2000-10-25 15:39:39 +00:00
{
NautilusImage *image;
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
image = NAUTILUS_IMAGE (nautilus_image_new (NULL));
Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/eazel-services-constants.h: Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/Makefile.am: * components/services/nautilus-dependent-shared/eazel-services-extensions.c: (pixbuf_new_from_name), (eazel_services_image_new), (eazel_services_label_new): * components/services/nautilus-dependent-shared/eazel-services-extensions.h: Add a place to put shared services extensions. * components/services/nautilus-dependent-shared/eazel-services-footer.c: (footer_item_new), (footer_remainder_new), (eazel_services_footer_update): * components/services/nautilus-dependent-shared/eazel-services-header.c: (eazel_services_header_new): * components/services/nautilus-dependent-shared/test-footer-header.c: Remove a bunch of duplicated code and put it in a shared extensions location. Make the footer real. Add an item_clicked signal to the footer. * components/services/summary/nautilus-view/nautilus-summary-view.c: Hook up the footer for item clicks. * libnautilus-extensions/nautilus-image.c: (nautilus_image_new_loaded): * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_new_loaded): * libnautilus-extensions/nautilus-label.h: Add constructors that take a bunch of arguments for the various widgets attributes. Makes the widgets easier to use for callers that need to tweak many attributes (like eazel services).
2000-10-25 15:39:39 +00:00
if (pixbuf != NULL) {
nautilus_image_set_pixbuf (image, pixbuf);
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_set_background_mode (NAUTILUS_IMAGE (image), NAUTILUS_SMOOTH_BACKGROUND_SOLID_COLOR);
nautilus_image_set_solid_background_color (NAUTILUS_IMAGE (image), background_color);
gtk_misc_set_padding (GTK_MISC (image), xpadding, ypadding);
gtk_misc_set_alignment (GTK_MISC (image), xalign, yalign);
Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/eazel-services-constants.h: Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/Makefile.am: * components/services/nautilus-dependent-shared/eazel-services-extensions.c: (pixbuf_new_from_name), (eazel_services_image_new), (eazel_services_label_new): * components/services/nautilus-dependent-shared/eazel-services-extensions.h: Add a place to put shared services extensions. * components/services/nautilus-dependent-shared/eazel-services-footer.c: (footer_item_new), (footer_remainder_new), (eazel_services_footer_update): * components/services/nautilus-dependent-shared/eazel-services-header.c: (eazel_services_header_new): * components/services/nautilus-dependent-shared/test-footer-header.c: Remove a bunch of duplicated code and put it in a shared extensions location. Make the footer real. Add an item_clicked signal to the footer. * components/services/summary/nautilus-view/nautilus-summary-view.c: Hook up the footer for item clicks. * libnautilus-extensions/nautilus-image.c: (nautilus_image_new_loaded): * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_new_loaded): * libnautilus-extensions/nautilus-label.h: Add constructors that take a bunch of arguments for the various widgets attributes. Makes the widgets easier to use for callers that need to tweak many attributes (like eazel services).
2000-10-25 15:39:39 +00:00
if (tile_pixbuf != NULL) {
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00
nautilus_image_set_tile_pixbuf (NAUTILUS_IMAGE (image), tile_pixbuf);
Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/eazel-services-constants.h: Removed. It was a bad try. Stuff is now in eazel-services-extensions.h. * components/services/nautilus-dependent-shared/Makefile.am: * components/services/nautilus-dependent-shared/eazel-services-extensions.c: (pixbuf_new_from_name), (eazel_services_image_new), (eazel_services_label_new): * components/services/nautilus-dependent-shared/eazel-services-extensions.h: Add a place to put shared services extensions. * components/services/nautilus-dependent-shared/eazel-services-footer.c: (footer_item_new), (footer_remainder_new), (eazel_services_footer_update): * components/services/nautilus-dependent-shared/eazel-services-header.c: (eazel_services_header_new): * components/services/nautilus-dependent-shared/test-footer-header.c: Remove a bunch of duplicated code and put it in a shared extensions location. Make the footer real. Add an item_clicked signal to the footer. * components/services/summary/nautilus-view/nautilus-summary-view.c: Hook up the footer for item clicks. * libnautilus-extensions/nautilus-image.c: (nautilus_image_new_loaded): * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_new_loaded): * libnautilus-extensions/nautilus-label.h: Add constructors that take a bunch of arguments for the various widgets attributes. Makes the widgets easier to use for callers that need to tweak many attributes (like eazel services).
2000-10-25 15:39:39 +00:00
}
return GTK_WIDGET (image);
}
reviewed by: Pavel Cisler <pavel@eazel.com> Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
2001-01-11 23:16:32 +00:00