summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-buffered-widget.c
Commit message (Collapse)AuthorAgeFilesLines
* More background drawing speedups - this time mainly for the non-aa case.Mike Engber2000-10-031-12/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | More background drawing speedups - this time mainly for the non-aa case. * libnautilus-extensions/nautilus-background-canvas-group.c: (nautilus_background_canvas_group_initialize_class), (nautilus_background_canvas_group_update), (nautilus_background_canvas_group_draw), (nautilus_background_canvas_group_render): * libnautilus-extensions/nautilus-background.c: (canvas_gradient_helper_v), (canvas_gradient_helper_h), (fill_canvas_from_gradient_buffer), (drawable_gradient_helper_v), (drawable_gradient_helper_h), (fill_drawable_from_gradient_buffer), (draw_pixbuf_tiled), (canvas_buf_from_pixbuf), (ensure_image_scaled), (nautilus_background_pre_draw), (nautilus_background_draw), (nautilus_background_draw_to_drawable), (draw_pixbuf_tiled_aa), (nautilus_background_draw_aa), (nautilus_background_draw_to_canvas), (nautilus_background_draw_flat_box): * libnautilus-extensions/nautilus-background.h: * libnautilus-extensions/nautilus-buffered-widget.c: (create_background_pixbuf_from_ancestor): * libnautilus-extensions/nautilus-directory-background.c: (image_loading_done_callback), (saved_settings_changed_callback): * libnautilus-extensions/nautilus-gdk-extensions.c: (nautilus_rgb16_to_rgb), (nautilus_rgb8_to_rgb), (nautilus_gdk_color_to_rgb): * libnautilus-extensions/nautilus-gdk-extensions.h: * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: * libnautilus-extensions/nautilus-gnome-extensions.c: (nautilus_gnome_canvas_draw_pixbuf_helper), (nautilus_gnome_canvas_draw_pixbuf_helper_alpha), (nautilus_gnome_canvas_draw_pixbuf): * libnautilus-extensions/nautilus-gnome-extensions.h:
* Remove an assertion that is not needed.Ramiro Estrugo2000-09-041-2/+0
| | | | | | * libnautilus-extensions/nautilus-buffered-widget.c: (create_background_pixbuf_from_ancestor): Remove an assertion that is not needed.
* Dumb documentation typos.Ramiro Estrugo2000-08-291-2/+2
| | | | | | | * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-scalable-font.h: Dumb documentation typos.
* Add unref/ref functions for gcs that take NULL.Ramiro Estrugo2000-08-291-105/+247
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libnautilus-extensions/nautilus-buffered-widget.c: (nautilus_buffered_widget_initialize), (nautilus_buffered_widget_destroy), (buffered_widget_update_pixbuf), (create_background_pixbuf_from_none), (create_background_pixbuf_from_solid), (create_background_pixbuf_from_ancestor), (create_background_pixbuf), (nautilus_buffered_widget_get_vertical_offset), (nautilus_buffered_widget_set_background_type), (nautilus_buffered_widget_get_background_type), (nautilus_buffered_widget_set_background_color), (nautilus_buffered_widget_get_background_color): * libnautilus-extensions/nautilus-buffered-widget.h: * libnautilus-extensions/nautilus-gdk-extensions.c: (nautilus_gdk_gc_ref_if_not_null), (nautilus_gdk_gc_unref_if_not_null): * libnautilus-extensions/nautilus-gdk-extensions.h: Add unref/ref functions for gcs that take NULL. * libnautilus-extensions/nautilus-label.c: (nautilus_label_new): * libnautilus-extensions/nautilus-label.h: Make the constructor work just like GtkLabel by accepting a string. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (add_play_controls): Use the new NautilusLabel constructor. * components/services/nautilus-dependent-shared/shared-service-widg ets.c: (create_label_widget): Use the new NautilusLabel constructor. * src/nautilus-first-time-druid.c: (make_anti_aliased_label), (set_up_update_feedback_page): Use the new NautilusLabel constructor. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (make_properties_from_directory_path), (make_properties_from_xml_node), (make_category_link): Use the new NautilusLabel constructor. Fix the tile names to be antialises by using the new buffered widget SOLID background mode. * src/nautilus-sidebar-title.c: (sidebar_create_smooth_components_if_needed): Use the new NautilusLabel constructor. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize): Use the new NautilusLabel constructor. * test/test-nautilus-image.c: (main): * test/test-nautilus-label.c: (main): Use the new NautilusLabel constructor.
* Delay the connection to the NautilusBackground until its time to redrawRamiro Estrugo2000-08-281-46/+40
| | | | | | | | | | | | | | | * libnautilus-extensions/nautilus-buffered-widget.c: (nautilus_buffered_widget_initialize), (nautilus_buffered_widget_realize), (nautilus_buffered_widget_draw), (background_appearance_changed_callback), (connect_to_background_if_needed): Delay the connection to the NautilusBackground until its time to redraw the widget. Only make this connection if an ancestor widget with an attatched NautilusBackground exists. This allows subclasses to be used on both widgets with and without NautilusBackgrounds attatched.
* Some dumb renamings and superfluous assertion removal.Ramiro Estrugo2000-08-251-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libnautilus-extensions/nautilus-buffered-widget.c: (nautilus_buffered_widget_initialize_class), (nautilus_buffered_widget_realize), (nautilus_buffered_widget_draw), (nautilus_buffered_widget_size_allocate), (nautilus_buffered_widget_expose_event): Some dumb renamings and superfluous assertion removal. * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_draw), (nautilus_image_expose_event), (nautilus_image_paint), (nautilus_image_set_alpha_mode): Add support for two alpha rendering modes: 1) FULL, the pixbuf is composited on top of the widget's background - expensive. 2) THRESHOLD, the pixbuf is drawn with an alpha threshold without any compositing - fast but not as smooth. * libnautilus-extensions/nautilus-label.c: (render_buffer_pixbuf): Remove a dumb printf i left in before. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (update_icon), (nautilus_sidebar_title_hit_test_icon), (sidebar_create_smooth_components_if_needed), (sidebar_create_normal_components_if_needed), (smooth_graphics_mode_changed_callback): Use the new dual alpha support in the image class to simplify things. Create only one icon and change the alpha mode on that when the smooth graphics preference changes. Ill do the same for emblems later.
* Add suport for a vertical and horizontal offset. Pass these on to theRamiro Estrugo2000-08-251-6/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libnautilus-extensions/nautilus-buffered-widget.c: (nautilus_buffered_widget_initialize), (buffered_widget_update_pixbuf), (nautilus_buffered_widget_set_tile_pixbuf), (nautilus_buffered_get_tile_pixbuf_size), (nautilus_buffered_widget_set_horizontal_offset), (nautilus_buffered_widget_get_horizontal_offset), (nautilus_buffered_widget_set_vertical_offset), (nautilus_buffered_widget_get_vertical_offset): * libnautilus-extensions/nautilus-buffered-widget.h: Add suport for a vertical and horizontal offset. Pass these on to the pixbuf render function so that the subclasses can do stuff with them. * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize), (nautilus_image_size_request), (render_buffer_pixbuf), (nautilus_image_set_overall_alpha), (nautilus_image_set_alpha_mode), (nautilus_image_get_alpha_mode): * libnautilus-extensions/nautilus-image.h: Use the GtkMisc xpad/ypad into account when computing the requested geometry. Add preliminary support an alpha mode so that the image widget can server as a regular thresholded pixbuf display without doing the full and expensive compositing on the background. Not hooked up yet. Update for vertical/horizontal offset support. * libnautilus-extensions/nautilus-label.c: (nautilus_label_size_request), (render_buffer_pixbuf): Use the GtkMisc xpad/ypad into account when computing the requested geometry. Update for vertical/horizontal offset support.
* New function to access the tile_height.Ramiro Estrugo2000-08-251-13/+38
| | | | | | | | | | | | | | | * libnautilus-extensions/nautilus-buffered-widget.c: (nautilus_buffered_widget_expose), (buffered_widget_create_pixbuf_from_background), (nautilus_buffered_widget_get_tile_pixbuf), (nautilus_buffered_get_tile_pixbuf_size): * libnautilus-extensions/nautilus-buffered-widget.h: New function to access the tile_height. * libnautilus-extensions/nautilus-label.c: (nautilus_label_size_request): Take the tile height into account when computing the requested label height.
* Add a evil hack to keep track of background changes. I have a better fixRamiro Estrugo2000-08-211-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * libnautilus-extensions/nautilus-buffered-widget.c: (nautilus_buffered_widget_realize): Add a evil hack to keep track of background changes. I have a better fix for this that I will commit soon. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_destroy), (nautilus_sidebar_title_select_text_color), (nautilus_sidebar_title_theme_changed), (update_icon), (update_font), (update_title), (update_more_info), (update_all), (nautilus_sidebar_title_hit_test_icon), (sidebar_create_smooth_components_if_needed), (sidebar_create_normal_components_if_needed), (anti_aliased_mode_changed_callback): * src/nautilus-sidebar-title.h: * src/nautilus-sidebar.c: (background_appearance_changed_callback): Add support for smoother graphics. Use new NautilusLabel and NautilusImage widgets to render alpha composited pixbufs and anti aliases text. The old non-smooth widgets are still supported and should continue to work as expected whenever the smooth graphics preference is toggled.
* Tasks: 1612, 1274, 1511 and 1588.Ramiro Estrugo2000-08-211-0/+668
* 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.