summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamiro Estrugo <ramiro@src.gnome.org>2000-08-29 02:11:38 +0000
committerRamiro Estrugo <ramiro@src.gnome.org>2000-08-29 02:11:38 +0000
commitf7276747ab4240532078ae7d4385ef0a705f82a0 (patch)
treecdca9cedf1cdcfb29d1f4c3cde3ddd37df7f6b47
parentb23f4b14cc0553f49e3fd42441ed4832b13a6023 (diff)
downloadnautilus-f7276747ab4240532078ae7d4385ef0a705f82a0.tar.gz
Add unref/ref functions for gcs that take NULL.
* 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.
-rw-r--r--ChangeLog59
-rw-r--r--components/music/nautilus-music-view.c4
-rw-r--r--components/services/nautilus-dependent-shared/shared-service-widgets.c3
-rw-r--r--libnautilus-extensions/nautilus-buffered-widget.c352
-rw-r--r--libnautilus-extensions/nautilus-buffered-widget.h38
-rw-r--r--libnautilus-extensions/nautilus-gdk-extensions.c16
-rw-r--r--libnautilus-extensions/nautilus-gdk-extensions.h20
-rw-r--r--libnautilus-extensions/nautilus-label.c10
-rw-r--r--libnautilus-extensions/nautilus-label.h3
-rw-r--r--libnautilus-private/nautilus-buffered-widget.c352
-rw-r--r--libnautilus-private/nautilus-buffered-widget.h38
-rw-r--r--libnautilus-private/nautilus-gdk-extensions.c16
-rw-r--r--libnautilus-private/nautilus-gdk-extensions.h20
-rw-r--r--libnautilus-private/nautilus-label.c10
-rw-r--r--libnautilus-private/nautilus-label.h3
-rw-r--r--src/nautilus-first-time-druid.c8
-rw-r--r--src/nautilus-property-browser.c33
-rw-r--r--src/nautilus-sidebar-title.c4
-rw-r--r--src/nautilus-theme-selector.c20
-rw-r--r--test/test-nautilus-image.c4
-rw-r--r--test/test-nautilus-label.c4
21 files changed, 708 insertions, 309 deletions
diff --git a/ChangeLog b/ChangeLog
index b3effbdd4..5b12e02e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,62 @@
+2000-08-28 Ramiro Estrugo <ramiro@eazel.com>
+
+ * 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.
+
2000-08-28 Andy Hertzfeld <andy@eazel.com>
* src/nautilus-window-menus.c: (get_static_bookmarks_file_path):
diff --git a/components/music/nautilus-music-view.c b/components/music/nautilus-music-view.c
index 21806d33c..b7ce462bc 100644
--- a/components/music/nautilus-music-view.c
+++ b/components/music/nautilus-music-view.c
@@ -220,7 +220,7 @@ nautilus_music_view_initialize (NautilusMusicView *music_view)
/* allocate a widget for the album title */
- music_view->details->album_title = nautilus_label_new ();
+ music_view->details->album_title = nautilus_label_new ("");
nautilus_label_set_font_from_components (NAUTILUS_LABEL (music_view->details->album_title),
"helvetica", "medium", NULL, NULL);
nautilus_label_set_font_size (NAUTILUS_LABEL (music_view->details->album_title), 20);
@@ -1075,7 +1075,7 @@ add_play_controls (NautilusMusicView *music_view)
gtk_table_set_row_spacings(GTK_TABLE(table), 2);
gtk_table_set_col_spacings(GTK_TABLE(table), 1);
- music_view->details->song_label = nautilus_label_new ();
+ music_view->details->song_label = nautilus_label_new ("");
nautilus_label_set_font_from_components (NAUTILUS_LABEL (music_view->details->song_label),
"helvetica", "medium", NULL, NULL);
nautilus_label_set_font_size (NAUTILUS_LABEL (music_view->details->song_label), 14);
diff --git a/components/services/nautilus-dependent-shared/shared-service-widgets.c b/components/services/nautilus-dependent-shared/shared-service-widgets.c
index 7eb539173..300b0c7eb 100644
--- a/components/services/nautilus-dependent-shared/shared-service-widgets.c
+++ b/components/services/nautilus-dependent-shared/shared-service-widgets.c
@@ -105,9 +105,8 @@ create_label_widget (const char *text,
g_return_val_if_fail (text != NULL, NULL);
g_return_val_if_fail (font_size > 0, NULL);
- label = nautilus_label_new ();
+ label = nautilus_label_new (text);
- nautilus_label_set_text (NAUTILUS_LABEL (label), text);
nautilus_label_set_font_from_components (NAUTILUS_LABEL (label), "helvetica", NULL, NULL, NULL);
nautilus_label_set_font_size (NAUTILUS_LABEL (label), font_size);
nautilus_label_set_text_color (NAUTILUS_LABEL (label), NAUTILUS_RGB_COLOR_WHITE);
diff --git a/libnautilus-extensions/nautilus-buffered-widget.c b/libnautilus-extensions/nautilus-buffered-widget.c
index 964705fde..7b0f4439f 100644
--- a/libnautilus-extensions/nautilus-buffered-widget.c
+++ b/libnautilus-extensions/nautilus-buffered-widget.c
@@ -61,74 +61,55 @@ enum
/* Detail member struct */
struct _NautilusBufferedWidgetDetail
{
- GdkGC *copy_area_gc;
- GdkPixbuf *buffer_pixbuf;
- GdkPixbuf *tile_pixbuf;
- int horizontal_offset;
- int vertical_offset;
- guint background_appearance_changed_connection;
+ GdkGC *copy_area_gc;
+ GdkPixbuf *buffer_pixbuf;
+ GdkPixbuf *tile_pixbuf;
+ int horizontal_offset;
+ int vertical_offset;
+ guint background_appearance_changed_connection;
+ NautilusBackgroundType background_type;
+ guint32 background_color;
};
-/* GdkGC refcounting macros */ \
-#define NAUTILUS_GDK_GC_UNREF_IF(_gc) \
-NAUTILUS_MACRO_BEGIN \
- if ((_gc) != NULL) { \
- gdk_gc_unref (_gc); \
- (_gc) = NULL; \
- } \
-NAUTILUS_MACRO_END
-
-#define NAUTILUS_GDK_GC_REF_IF(_gc) \
-NAUTILUS_MACRO_BEGIN \
- if ((_gc) != NULL) { \
- gdk_gc_ref (_gc); \
- } \
-NAUTILUS_MACRO_END
-
/* GtkObjectClass methods */
-static void nautilus_buffered_widget_initialize_class (NautilusBufferedWidgetClass *buffered_widget_class);
-static void nautilus_buffered_widget_initialize (NautilusBufferedWidget *buffered_widget);
-static void nautilus_buffered_widget_destroy (GtkObject *object);
-static void nautilus_buffered_widget_set_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id);
-static void nautilus_buffered_widget_get_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id);
-
-
+static void nautilus_buffered_widget_initialize_class (NautilusBufferedWidgetClass *buffered_widget_class);
+static void nautilus_buffered_widget_initialize (NautilusBufferedWidget *buffered_widget);
+static void nautilus_buffered_widget_destroy (GtkObject *object);
+static void nautilus_buffered_widget_set_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id);
+static void nautilus_buffered_widget_get_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id);
/* GtkWidgetClass methods */
-static void nautilus_buffered_widget_realize (GtkWidget *widget);
-static void nautilus_buffered_widget_draw (GtkWidget *widget,
- GdkRectangle *area);
-static void nautilus_buffered_widget_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation);
-
-
+static void nautilus_buffered_widget_realize (GtkWidget *widget);
+static void nautilus_buffered_widget_draw (GtkWidget *widget,
+ GdkRectangle *area);
+static void nautilus_buffered_widget_size_allocate (GtkWidget *widget,
+ GtkAllocation *allocation);
/* GtkWidgetClass event methods */
-static gint nautilus_buffered_widget_expose_event (GtkWidget *widget,
- GdkEventExpose *event);
-
-
+static gint nautilus_buffered_widget_expose_event (GtkWidget *widget,
+ GdkEventExpose *event);
/* Private NautilusBufferedWidget things */
-static void background_appearance_changed_callback (NautilusBackground *background,
- gpointer callback_data);
-static GdkPixbuf* buffered_widget_create_pixbuf_from_background (const NautilusBufferedWidget *buffered_widget,
- GdkGC *gc);
-static void buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget);
-static GtkWidget *nautilus_gtk_widget_find_background_ancestor (GtkWidget *widget);
-static void nautilus_gdk_pixbuf_tile_alpha (GdkPixbuf *pixbuf,
- const GdkPixbuf *tile_pixbuf,
- guint tile_width,
- guint tile_height,
- gint tile_origin_x,
- gint tile_origin_y,
- GdkInterpType interpolation_mode,
- guchar overall_alpha);
-static void connect_to_background_if_needed (NautilusBufferedWidget *buffered_widget);
-
+static void background_appearance_changed_callback (NautilusBackground *background,
+ gpointer callback_data);
+static GdkPixbuf* create_background_pixbuf (const NautilusBufferedWidget *buffered_widget);
+static GdkPixbuf* create_background_pixbuf_from_none (const NautilusBufferedWidget *buffered_widget);
+static GdkPixbuf* create_background_pixbuf_from_solid (const NautilusBufferedWidget *buffered_widget);
+static GdkPixbuf* create_background_pixbuf_from_ancestor (const NautilusBufferedWidget *buffered_widget);
+static void buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget);
+static GtkWidget *nautilus_gtk_widget_find_background_ancestor (GtkWidget *widget);
+static void nautilus_gdk_pixbuf_tile_alpha (GdkPixbuf *pixbuf,
+ const GdkPixbuf *tile_pixbuf,
+ guint tile_width,
+ guint tile_height,
+ gint tile_origin_x,
+ gint tile_origin_y,
+ GdkInterpType interpolation_mode,
+ guchar overall_alpha);
+static void connect_to_background_if_needed (NautilusBufferedWidget *buffered_widget);
NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusBufferedWidget, nautilus_buffered_widget, GTK_TYPE_MISC)
@@ -170,6 +151,8 @@ nautilus_buffered_widget_initialize (NautilusBufferedWidget *buffered_widget)
buffered_widget->detail->horizontal_offset = 0;
buffered_widget->detail->vertical_offset = 0;
buffered_widget->detail->background_appearance_changed_connection = 0;
+ buffered_widget->detail->background_type = NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE;
+ buffered_widget->detail->background_color = NAUTILUS_RGB_COLOR_WHITE;
}
/* GtkObjectClass methods */
@@ -183,12 +166,12 @@ nautilus_buffered_widget_destroy (GtkObject *object)
buffered_widget = NAUTILUS_BUFFERED_WIDGET (object);
- NAUTILUS_GDK_GC_UNREF_IF (buffered_widget->detail->copy_area_gc);
+ nautilus_gdk_gc_unref_if_not_null (buffered_widget->detail->copy_area_gc);
+ buffered_widget->detail->copy_area_gc = NULL;
nautilus_gdk_pixbuf_unref_if_not_null (buffered_widget->detail->buffer_pixbuf);
buffered_widget->detail->buffer_pixbuf = NULL;
nautilus_gdk_pixbuf_unref_if_not_null (buffered_widget->detail->tile_pixbuf);
buffered_widget->detail->tile_pixbuf = NULL;
- NAUTILUS_GDK_GC_UNREF_IF (buffered_widget->detail->copy_area_gc);
g_free (buffered_widget->detail);
@@ -447,10 +430,9 @@ static void
buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget)
{
GtkWidget *widget;
- GdkPixbuf *pixbuf_without_alpha;
+ GdkPixbuf *background_pixbuf;
ArtIRect clip_rect;
GdkPoint destination_point;
- NautilusBufferedWidgetClass *buffered_widget_class;
g_return_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget));
@@ -458,11 +440,17 @@ buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget)
nautilus_gdk_pixbuf_unref_if_not_null (buffered_widget->detail->buffer_pixbuf);
- pixbuf_without_alpha = buffered_widget_create_pixbuf_from_background (buffered_widget,
- buffered_widget->detail->copy_area_gc);
- buffered_widget->detail->buffer_pixbuf = gdk_pixbuf_add_alpha (pixbuf_without_alpha, FALSE, 0, 0, 0);
+ background_pixbuf = create_background_pixbuf (buffered_widget);
+ g_assert (background_pixbuf != NULL);
- gdk_pixbuf_unref (pixbuf_without_alpha);
+// if (!gdk_pixbuf_get_has_alpha (background_pixbuf)) {
+ buffered_widget->detail->buffer_pixbuf = gdk_pixbuf_add_alpha (background_pixbuf, FALSE, 0, 0, 0);
+
+ gdk_pixbuf_unref (background_pixbuf);
+// }
+// else {
+// buffered_widget->detail->buffer_pixbuf = background_pixbuf;
+// }
g_assert (buffered_widget->detail->buffer_pixbuf != NULL);
@@ -475,10 +463,6 @@ buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget)
destination_point.x = 0;
destination_point.y = 0;
- buffered_widget_class = NAUTILUS_BUFFERED_WIDGET_CLASS (NAUTILUS_CLASS (buffered_widget));
- g_assert (buffered_widget_class != NULL);
- g_assert (buffered_widget_class->render_buffer_pixbuf != NULL);
-
if (buffered_widget->detail->tile_pixbuf != NULL) {
nautilus_gdk_pixbuf_tile_alpha (buffered_widget->detail->buffer_pixbuf,
buffered_widget->detail->tile_pixbuf,
@@ -498,25 +482,82 @@ buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget)
}
static GdkPixbuf*
-buffered_widget_create_pixbuf_from_background (const NautilusBufferedWidget *buffered_widget,
- GdkGC *gc)
+create_background_pixbuf_from_none (const NautilusBufferedWidget *buffered_widget)
+{
+ GtkWidget *widget;
+ GdkPixbuf *pixbuf;
+ GdkPixmap *pixmap;
+
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), NULL);
+
+ widget = GTK_WIDGET (buffered_widget);
+
+ pixmap = gdk_pixmap_new (widget->window, widget->allocation.width, widget->allocation.height, -1);
+
+ gtk_paint_flat_box (widget->style,
+ pixmap,
+ widget->state,
+ GTK_SHADOW_NONE,
+ NULL,
+ widget,
+ "eventbox",
+ 0,
+ 0,
+ widget->allocation.width,
+ widget->allocation.height);
+
+ pixbuf = gdk_pixbuf_get_from_drawable (NULL,
+ pixmap,
+ gdk_rgb_get_cmap (),
+ 0,
+ 0,
+ 0,
+ 0,
+ widget->allocation.width,
+ widget->allocation.height);
+
+ g_assert (pixbuf != NULL);
+
+ return pixbuf;
+}
+
+static GdkPixbuf*
+create_background_pixbuf_from_solid (const NautilusBufferedWidget *buffered_widget)
+{
+ GtkWidget *widget;
+ GdkPixbuf *pixbuf;
+
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), NULL);
+
+ widget = GTK_WIDGET (buffered_widget);
+
+ pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, widget->allocation.width, widget->allocation.height);
+
+ nautilus_gdk_pixbuf_fill_rectangle_with_color (pixbuf, NULL, buffered_widget->detail->background_color);
+
+ g_assert (pixbuf != NULL);
+
+ return pixbuf;
+}
+
+static GdkPixbuf*
+create_background_pixbuf_from_ancestor (const NautilusBufferedWidget *buffered_widget)
{
GtkWidget *widget;
- GdkPixbuf *pixbuf;
+ GdkPixbuf *pixbuf = NULL;
GtkWidget *background_ancestor;
g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), NULL);
- g_return_val_if_fail (gc != NULL, NULL);
widget = GTK_WIDGET (buffered_widget);
background_ancestor = nautilus_gtk_widget_find_background_ancestor (widget);
-
+
if (background_ancestor != NULL) {
NautilusBackground *background;
GdkPixmap *pixmap;
GdkRectangle background_area;
-
+
background = nautilus_get_widget_background (background_ancestor);
g_assert (NAUTILUS_IS_BACKGROUND (background));
@@ -527,7 +568,7 @@ buffered_widget_create_pixbuf_from_background (const NautilusBufferedWidget *buf
pixmap = gdk_pixmap_new (widget->window, background_area.width, background_area.height, -1);
- nautilus_background_draw (background, pixmap, gc, &background_area, 0, 0);
+ nautilus_background_draw (background, pixmap, buffered_widget->detail->copy_area_gc, &background_area, 0, 0);
pixbuf = gdk_pixbuf_get_from_drawable (NULL,
pixmap,
@@ -538,37 +579,40 @@ buffered_widget_create_pixbuf_from_background (const NautilusBufferedWidget *buf
0,
widget->allocation.width,
widget->allocation.height);
-
+
+ g_assert (pixbuf != NULL);
+
gdk_pixmap_unref (pixmap);
}
- else {
- GdkPixmap *pixmap;
- pixmap = gdk_pixmap_new (widget->window, widget->allocation.width, widget->allocation.height, -1);
-
- gtk_paint_flat_box (widget->style,
- pixmap,
- widget->state,
- GTK_SHADOW_NONE,
- NULL,
- widget,
- "eventbox",
- 0,
- 0,
- widget->allocation.width,
- widget->allocation.height);
+ return pixbuf;
+}
- pixbuf = gdk_pixbuf_get_from_drawable (NULL,
- pixmap,
- gdk_rgb_get_cmap (),
- 0,
- 0,
- 0,
- 0,
- widget->allocation.width,
- widget->allocation.height);
- }
+static GdkPixbuf*
+create_background_pixbuf (const NautilusBufferedWidget *buffered_widget)
+{
+ GdkPixbuf *pixbuf;
+
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), NULL);
+ switch (buffered_widget->detail->background_type) {
+ case NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE:
+ pixbuf = create_background_pixbuf_from_ancestor (buffered_widget);
+ if (!pixbuf) {
+ pixbuf = create_background_pixbuf_from_none (buffered_widget);
+ }
+ break;
+
+ case NAUTILUS_BACKGROUND_SOLID:
+ pixbuf = create_background_pixbuf_from_solid (buffered_widget);
+ break;
+
+ default:
+ case NAUTILUS_BACKGROUND_NONE:
+ pixbuf = create_background_pixbuf_from_none (buffered_widget);
+ break;
+ }
+
g_assert (pixbuf != NULL);
return pixbuf;
@@ -789,3 +833,101 @@ nautilus_buffered_widget_get_vertical_offset (const NautilusBufferedWidget *buff
return buffered_widget->detail->vertical_offset;
}
+
+/**
+ * nautilus_buffered_widget_set_background_type:
+ *
+ * @buffered_widget: A NautilusBufferedWidget
+ * @background_type: The new background type
+ *
+ * Change the background type for the widget as follows:
+ *
+ * NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE:
+ *
+ * Look for the closest ancestor widget that has an attatched
+ * NautilusBackground and use that. If that fails, then use
+ * the widget's background as specified by its attachted GtkStyle.
+ *
+ * NAUTILUS_BACKGROUND_NONE:
+ *
+ * Use the widget's background as specified by its attachted GtkStyle.
+ *
+ * NAUTILUS_BACKGROUND_SOLID:
+ *
+ * Use a solid color for the background. This solid color can be
+ * changed with nautilus_buffered_widget_set_background_color()
+ */
+void
+nautilus_buffered_widget_set_background_type (NautilusBufferedWidget *buffered_widget,
+ NautilusBackgroundType background_type)
+{
+ g_return_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget));
+ g_return_if_fail (background_type >= NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE);
+ g_return_if_fail (background_type <= NAUTILUS_BACKGROUND_SOLID);
+
+ if (background_type != buffered_widget->detail->background_type)
+ {
+ buffered_widget->detail->background_type = background_type;
+
+ nautilus_buffered_widget_clear_buffer (NAUTILUS_BUFFERED_WIDGET (buffered_widget));
+
+ gtk_widget_queue_draw (GTK_WIDGET (buffered_widget));
+ }
+}
+
+/**
+ * nautilus_buffered_widget_get_background_type:
+ *
+ * @buffered_widget: A NautilusBufferedWidget
+ *
+ * Return value: The current background type.
+ */
+NautilusBackgroundType
+nautilus_buffered_widget_get_background_type (const NautilusBufferedWidget *buffered_widget)
+{
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), 0);
+
+ return buffered_widget->detail->background_type;
+}
+
+/**
+ * nautilus_buffered_widget_set_background_color:
+ *
+ * @buffered_widget: A NautilusBufferedWidget
+ * @background_color: The new background color
+ *
+ * Set the background color to use for when the widget's background_type is
+ * NAUTILUS_BACKGROUND_SOLID.
+ */
+void
+nautilus_buffered_widget_set_background_color (NautilusBufferedWidget *buffered_widget,
+ guint32 background_color)
+{
+ g_return_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget));
+
+ if (background_color != buffered_widget->detail->background_color)
+ {
+ buffered_widget->detail->background_color = background_color;
+
+ if (buffered_widget->detail->background_type == NAUTILUS_BACKGROUND_SOLID) {
+ nautilus_buffered_widget_clear_buffer (NAUTILUS_BUFFERED_WIDGET (buffered_widget));
+
+ gtk_widget_queue_draw (GTK_WIDGET (buffered_widget));
+ }
+ }
+}
+
+/**
+ * nautilus_buffered_widget_get_background_color:
+ *
+ * @buffered_widget: A NautilusBufferedWidget
+ *
+ * Return value: The current background color.
+ */
+guint32
+nautilus_buffered_widget_get_background_color (const NautilusBufferedWidget *buffered_widget)
+{
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), 0);
+
+ return buffered_widget->detail->background_color;
+}
diff --git a/libnautilus-extensions/nautilus-buffered-widget.h b/libnautilus-extensions/nautilus-buffered-widget.h
index 0a664a25b..3437a30e8 100644
--- a/libnautilus-extensions/nautilus-buffered-widget.h
+++ b/libnautilus-extensions/nautilus-buffered-widget.h
@@ -83,19 +83,31 @@ typedef struct
guint height;
} NautilusPixbufSize;
-GtkType nautilus_buffered_widget_get_type (void);
-void nautilus_buffered_widget_clear_buffer (NautilusBufferedWidget *buffered_widget);
-void nautilus_buffered_widget_set_tile_pixbuf (NautilusBufferedWidget *buffered_widget,
- GdkPixbuf *pixbuf);
-GdkPixbuf* nautilus_buffered_widget_get_tile_pixbuf (const NautilusBufferedWidget *buffered_widget);
-NautilusPixbufSize nautilus_buffered_get_tile_pixbuf_size (const NautilusBufferedWidget *buffered_widget);
-void nautilus_buffered_widget_set_vertical_offset (NautilusBufferedWidget *image,
- int vertical_offset);
-int nautilus_buffered_widget_get_vertical_offset (const NautilusBufferedWidget *buffered_widget);
-void nautilus_buffered_widget_set_horizontal_offset (NautilusBufferedWidget *image,
- int horizontal_offset);
-int nautilus_buffered_widget_get_horizontal_offset (const NautilusBufferedWidget *buffered_widget);
-
+typedef enum
+{
+ NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE,
+ NAUTILUS_BACKGROUND_NONE,
+ NAUTILUS_BACKGROUND_SOLID
+} NautilusBackgroundType;
+
+GtkType nautilus_buffered_widget_get_type (void);
+void nautilus_buffered_widget_clear_buffer (NautilusBufferedWidget *buffered_widget);
+void nautilus_buffered_widget_set_tile_pixbuf (NautilusBufferedWidget *buffered_widget,
+ GdkPixbuf *pixbuf);
+GdkPixbuf* nautilus_buffered_widget_get_tile_pixbuf (const NautilusBufferedWidget *buffered_widget);
+NautilusPixbufSize nautilus_buffered_get_tile_pixbuf_size (const NautilusBufferedWidget *buffered_widget);
+void nautilus_buffered_widget_set_vertical_offset (NautilusBufferedWidget *image,
+ int vertical_offset);
+int nautilus_buffered_widget_get_vertical_offset (const NautilusBufferedWidget *buffered_widget);
+void nautilus_buffered_widget_set_horizontal_offset (NautilusBufferedWidget *image,
+ int horizontal_offset);
+int nautilus_buffered_widget_get_horizontal_offset (const NautilusBufferedWidget *buffered_widget);
+void nautilus_buffered_widget_set_background_type (NautilusBufferedWidget *image,
+ NautilusBackgroundType background_type);
+NautilusBackgroundType nautilus_buffered_widget_get_background_type (const NautilusBufferedWidget *image);
+void nautilus_buffered_widget_set_background_color (NautilusBufferedWidget *image,
+ guint32 background_color);
+guint32 nautilus_buffered_widget_get_background_color (const NautilusBufferedWidget *image);
END_GNOME_DECLS
diff --git a/libnautilus-extensions/nautilus-gdk-extensions.c b/libnautilus-extensions/nautilus-gdk-extensions.c
index 7381b48d2..ecf3c8b5a 100644
--- a/libnautilus-extensions/nautilus-gdk-extensions.c
+++ b/libnautilus-extensions/nautilus-gdk-extensions.c
@@ -764,6 +764,22 @@ nautilus_gdk_create_copy_area_gc (GdkWindow *window)
return copy_area_gc;
}
+void
+nautilus_gdk_gc_ref_if_not_null (GdkGC *gc_or_null)
+{
+ if (gc_or_null != NULL) {
+ gdk_gc_ref (gc_or_null);
+ }
+}
+
+void
+nautilus_gdk_gc_unref_if_not_null (GdkGC *gc_or_null)
+{
+ if (gc_or_null != NULL) {
+ gdk_gc_unref (gc_or_null);
+ }
+}
+
#if ! defined (NAUTILUS_OMIT_SELF_CHECK)
static char *
diff --git a/libnautilus-extensions/nautilus-gdk-extensions.h b/libnautilus-extensions/nautilus-gdk-extensions.h
index fbd713402..440473b42 100644
--- a/libnautilus-extensions/nautilus-gdk-extensions.h
+++ b/libnautilus-extensions/nautilus-gdk-extensions.h
@@ -68,6 +68,7 @@ char * nautilus_gradient_set_right_color_spec (const char *grad
char * nautilus_gradient_set_bottom_color_spec (const char *gradient_spec,
const char *bottom_color);
+
/* A version of parse_color that substitutes a default color instead of returning
a boolean to indicate it cannot be parsed.
*/
@@ -79,10 +80,11 @@ void nautilus_gdk_color_parse_with_white_default (const char *colo
guint32 nautilus_parse_rgb_with_default (const char *color_spec,
guint32 default_rgb);
guint32 nautilus_parse_rgb_with_white_default (const char *color_spec);
-guint32 nautilus_rgb_shift_color (guint32 color,
- float shift_by);
-guint32 nautilus_gdk_color_to_rgb (const GdkColor *color);
+guint32 nautilus_rgb_shift_color (guint32 color,
+ float shift_by);
+guint32 nautilus_gdk_color_to_rgb (const GdkColor *color);
GdkColor * nautilus_gdk_rgb_to_color (const guint32 color);
+
/* Fill routines that take GdkRectangle parameters instead of four integers. */
void nautilus_fill_rectangle (GdkDrawable *drawable,
GdkGC *gc,
@@ -97,9 +99,11 @@ void nautilus_fill_rectangle_with_gradient (GdkDrawable *draw
guint32 start_rgb,
guint32 end_rgb,
gboolean horizontal_gradient);
+
/* A routine to get a 50% gray stippled bitmap for use in some types of highlighting. */
GdkBitmap *nautilus_stipple_bitmap (void);
+
/* Misc GdkRectangle helper functions */
gboolean nautilus_rectangle_contains (const GdkRectangle *rectangle,
int x,
@@ -108,27 +112,33 @@ void nautilus_rectangle_inset (GdkRectangle *rect
int x,
int y);
+
/* A basic operation we use for drawing gradients is interpolating two colors.*/
guint32 nautilus_interpolate_color (gdouble ratio,
guint32 start_rgb,
guint32 end_rgb);
+
/* Misc GdkFont helper functions */
gboolean nautilus_gdk_font_equal (GdkFont *font_a_null_allowed,
GdkFont *font_b_null_allowed);
GdkFont * nautilus_get_largest_fitting_font (const char *text_to_format,
int width,
const char *font_format);
-GdkFont * nautilus_gdk_font_get_bold (const GdkFont *plain);
+GdkFont * nautilus_gdk_font_get_bold (const GdkFont *plain);
+
/* Misc GdkWindow helper functions */
void nautilus_gdk_window_bring_to_front (GdkWindow *window);
+
/* In GNOME 2.0 this function will be in the libraries */
void nautilus_set_mini_icon (GdkWindow *window,
GdkPixmap *pixmap,
GdkBitmap *mask);
-GdkGC * nautilus_gdk_create_copy_area_gc (GdkWindow *window);
+GdkGC * nautilus_gdk_create_copy_area_gc (GdkWindow *window);
+void nautilus_gdk_gc_ref_if_not_null (GdkGC *gc_or_null);
+void nautilus_gdk_gc_unref_if_not_null (GdkGC *gc_or_null);
#endif /* NAUTILUS_GDK_EXTENSIONS_H */
diff --git a/libnautilus-extensions/nautilus-label.c b/libnautilus-extensions/nautilus-label.c
index 20efa32ba..4e89b14ad 100644
--- a/libnautilus-extensions/nautilus-label.c
+++ b/libnautilus-extensions/nautilus-label.c
@@ -432,9 +432,15 @@ label_recompute_line_geometries (NautilusLabel *label)
/* Public NautilusLabel */
GtkWidget*
-nautilus_label_new (void)
+nautilus_label_new (const char *text)
{
- return GTK_WIDGET (gtk_type_new (nautilus_label_get_type ()));
+ NautilusLabel *label;
+
+ label = NAUTILUS_LABEL (gtk_type_new (nautilus_label_get_type ()));
+
+ nautilus_label_set_text (label, text);
+
+ return GTK_WIDGET (label);
}
void
diff --git a/libnautilus-extensions/nautilus-label.h b/libnautilus-extensions/nautilus-label.h
index 7a9363b55..d76d049eb 100644
--- a/libnautilus-extensions/nautilus-label.h
+++ b/libnautilus-extensions/nautilus-label.h
@@ -71,7 +71,7 @@ struct _NautilusLabelClass
};
GtkType nautilus_label_get_type (void);
-GtkWidget * nautilus_label_new (void);
+GtkWidget * nautilus_label_new (const char *text);
void nautilus_label_set_text (NautilusLabel *label,
const char *text);
char* nautilus_label_get_text (NautilusLabel *label);
@@ -105,7 +105,6 @@ void nautilus_label_set_drop_shadow_color (NautilusLabel
guint32 color);
guint32 nautilus_label_get_drop_shadow_color (const NautilusLabel *label);
-
END_GNOME_DECLS
#endif /* NAUTILUS_LABEL_H */
diff --git a/libnautilus-private/nautilus-buffered-widget.c b/libnautilus-private/nautilus-buffered-widget.c
index 964705fde..7b0f4439f 100644
--- a/libnautilus-private/nautilus-buffered-widget.c
+++ b/libnautilus-private/nautilus-buffered-widget.c
@@ -61,74 +61,55 @@ enum
/* Detail member struct */
struct _NautilusBufferedWidgetDetail
{
- GdkGC *copy_area_gc;
- GdkPixbuf *buffer_pixbuf;
- GdkPixbuf *tile_pixbuf;
- int horizontal_offset;
- int vertical_offset;
- guint background_appearance_changed_connection;
+ GdkGC *copy_area_gc;
+ GdkPixbuf *buffer_pixbuf;
+ GdkPixbuf *tile_pixbuf;
+ int horizontal_offset;
+ int vertical_offset;
+ guint background_appearance_changed_connection;
+ NautilusBackgroundType background_type;
+ guint32 background_color;
};
-/* GdkGC refcounting macros */ \
-#define NAUTILUS_GDK_GC_UNREF_IF(_gc) \
-NAUTILUS_MACRO_BEGIN \
- if ((_gc) != NULL) { \
- gdk_gc_unref (_gc); \
- (_gc) = NULL; \
- } \
-NAUTILUS_MACRO_END
-
-#define NAUTILUS_GDK_GC_REF_IF(_gc) \
-NAUTILUS_MACRO_BEGIN \
- if ((_gc) != NULL) { \
- gdk_gc_ref (_gc); \
- } \
-NAUTILUS_MACRO_END
-
/* GtkObjectClass methods */
-static void nautilus_buffered_widget_initialize_class (NautilusBufferedWidgetClass *buffered_widget_class);
-static void nautilus_buffered_widget_initialize (NautilusBufferedWidget *buffered_widget);
-static void nautilus_buffered_widget_destroy (GtkObject *object);
-static void nautilus_buffered_widget_set_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id);
-static void nautilus_buffered_widget_get_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id);
-
-
+static void nautilus_buffered_widget_initialize_class (NautilusBufferedWidgetClass *buffered_widget_class);
+static void nautilus_buffered_widget_initialize (NautilusBufferedWidget *buffered_widget);
+static void nautilus_buffered_widget_destroy (GtkObject *object);
+static void nautilus_buffered_widget_set_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id);
+static void nautilus_buffered_widget_get_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id);
/* GtkWidgetClass methods */
-static void nautilus_buffered_widget_realize (GtkWidget *widget);
-static void nautilus_buffered_widget_draw (GtkWidget *widget,
- GdkRectangle *area);
-static void nautilus_buffered_widget_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation);
-
-
+static void nautilus_buffered_widget_realize (GtkWidget *widget);
+static void nautilus_buffered_widget_draw (GtkWidget *widget,
+ GdkRectangle *area);
+static void nautilus_buffered_widget_size_allocate (GtkWidget *widget,
+ GtkAllocation *allocation);
/* GtkWidgetClass event methods */
-static gint nautilus_buffered_widget_expose_event (GtkWidget *widget,
- GdkEventExpose *event);
-
-
+static gint nautilus_buffered_widget_expose_event (GtkWidget *widget,
+ GdkEventExpose *event);
/* Private NautilusBufferedWidget things */
-static void background_appearance_changed_callback (NautilusBackground *background,
- gpointer callback_data);
-static GdkPixbuf* buffered_widget_create_pixbuf_from_background (const NautilusBufferedWidget *buffered_widget,
- GdkGC *gc);
-static void buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget);
-static GtkWidget *nautilus_gtk_widget_find_background_ancestor (GtkWidget *widget);
-static void nautilus_gdk_pixbuf_tile_alpha (GdkPixbuf *pixbuf,
- const GdkPixbuf *tile_pixbuf,
- guint tile_width,
- guint tile_height,
- gint tile_origin_x,
- gint tile_origin_y,
- GdkInterpType interpolation_mode,
- guchar overall_alpha);
-static void connect_to_background_if_needed (NautilusBufferedWidget *buffered_widget);
-
+static void background_appearance_changed_callback (NautilusBackground *background,
+ gpointer callback_data);
+static GdkPixbuf* create_background_pixbuf (const NautilusBufferedWidget *buffered_widget);
+static GdkPixbuf* create_background_pixbuf_from_none (const NautilusBufferedWidget *buffered_widget);
+static GdkPixbuf* create_background_pixbuf_from_solid (const NautilusBufferedWidget *buffered_widget);
+static GdkPixbuf* create_background_pixbuf_from_ancestor (const NautilusBufferedWidget *buffered_widget);
+static void buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget);
+static GtkWidget *nautilus_gtk_widget_find_background_ancestor (GtkWidget *widget);
+static void nautilus_gdk_pixbuf_tile_alpha (GdkPixbuf *pixbuf,
+ const GdkPixbuf *tile_pixbuf,
+ guint tile_width,
+ guint tile_height,
+ gint tile_origin_x,
+ gint tile_origin_y,
+ GdkInterpType interpolation_mode,
+ guchar overall_alpha);
+static void connect_to_background_if_needed (NautilusBufferedWidget *buffered_widget);
NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusBufferedWidget, nautilus_buffered_widget, GTK_TYPE_MISC)
@@ -170,6 +151,8 @@ nautilus_buffered_widget_initialize (NautilusBufferedWidget *buffered_widget)
buffered_widget->detail->horizontal_offset = 0;
buffered_widget->detail->vertical_offset = 0;
buffered_widget->detail->background_appearance_changed_connection = 0;
+ buffered_widget->detail->background_type = NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE;
+ buffered_widget->detail->background_color = NAUTILUS_RGB_COLOR_WHITE;
}
/* GtkObjectClass methods */
@@ -183,12 +166,12 @@ nautilus_buffered_widget_destroy (GtkObject *object)
buffered_widget = NAUTILUS_BUFFERED_WIDGET (object);
- NAUTILUS_GDK_GC_UNREF_IF (buffered_widget->detail->copy_area_gc);
+ nautilus_gdk_gc_unref_if_not_null (buffered_widget->detail->copy_area_gc);
+ buffered_widget->detail->copy_area_gc = NULL;
nautilus_gdk_pixbuf_unref_if_not_null (buffered_widget->detail->buffer_pixbuf);
buffered_widget->detail->buffer_pixbuf = NULL;
nautilus_gdk_pixbuf_unref_if_not_null (buffered_widget->detail->tile_pixbuf);
buffered_widget->detail->tile_pixbuf = NULL;
- NAUTILUS_GDK_GC_UNREF_IF (buffered_widget->detail->copy_area_gc);
g_free (buffered_widget->detail);
@@ -447,10 +430,9 @@ static void
buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget)
{
GtkWidget *widget;
- GdkPixbuf *pixbuf_without_alpha;
+ GdkPixbuf *background_pixbuf;
ArtIRect clip_rect;
GdkPoint destination_point;
- NautilusBufferedWidgetClass *buffered_widget_class;
g_return_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget));
@@ -458,11 +440,17 @@ buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget)
nautilus_gdk_pixbuf_unref_if_not_null (buffered_widget->detail->buffer_pixbuf);
- pixbuf_without_alpha = buffered_widget_create_pixbuf_from_background (buffered_widget,
- buffered_widget->detail->copy_area_gc);
- buffered_widget->detail->buffer_pixbuf = gdk_pixbuf_add_alpha (pixbuf_without_alpha, FALSE, 0, 0, 0);
+ background_pixbuf = create_background_pixbuf (buffered_widget);
+ g_assert (background_pixbuf != NULL);
- gdk_pixbuf_unref (pixbuf_without_alpha);
+// if (!gdk_pixbuf_get_has_alpha (background_pixbuf)) {
+ buffered_widget->detail->buffer_pixbuf = gdk_pixbuf_add_alpha (background_pixbuf, FALSE, 0, 0, 0);
+
+ gdk_pixbuf_unref (background_pixbuf);
+// }
+// else {
+// buffered_widget->detail->buffer_pixbuf = background_pixbuf;
+// }
g_assert (buffered_widget->detail->buffer_pixbuf != NULL);
@@ -475,10 +463,6 @@ buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget)
destination_point.x = 0;
destination_point.y = 0;
- buffered_widget_class = NAUTILUS_BUFFERED_WIDGET_CLASS (NAUTILUS_CLASS (buffered_widget));
- g_assert (buffered_widget_class != NULL);
- g_assert (buffered_widget_class->render_buffer_pixbuf != NULL);
-
if (buffered_widget->detail->tile_pixbuf != NULL) {
nautilus_gdk_pixbuf_tile_alpha (buffered_widget->detail->buffer_pixbuf,
buffered_widget->detail->tile_pixbuf,
@@ -498,25 +482,82 @@ buffered_widget_update_pixbuf (NautilusBufferedWidget *buffered_widget)
}
static GdkPixbuf*
-buffered_widget_create_pixbuf_from_background (const NautilusBufferedWidget *buffered_widget,
- GdkGC *gc)
+create_background_pixbuf_from_none (const NautilusBufferedWidget *buffered_widget)
+{
+ GtkWidget *widget;
+ GdkPixbuf *pixbuf;
+ GdkPixmap *pixmap;
+
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), NULL);
+
+ widget = GTK_WIDGET (buffered_widget);
+
+ pixmap = gdk_pixmap_new (widget->window, widget->allocation.width, widget->allocation.height, -1);
+
+ gtk_paint_flat_box (widget->style,
+ pixmap,
+ widget->state,
+ GTK_SHADOW_NONE,
+ NULL,
+ widget,
+ "eventbox",
+ 0,
+ 0,
+ widget->allocation.width,
+ widget->allocation.height);
+
+ pixbuf = gdk_pixbuf_get_from_drawable (NULL,
+ pixmap,
+ gdk_rgb_get_cmap (),
+ 0,
+ 0,
+ 0,
+ 0,
+ widget->allocation.width,
+ widget->allocation.height);
+
+ g_assert (pixbuf != NULL);
+
+ return pixbuf;
+}
+
+static GdkPixbuf*
+create_background_pixbuf_from_solid (const NautilusBufferedWidget *buffered_widget)
+{
+ GtkWidget *widget;
+ GdkPixbuf *pixbuf;
+
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), NULL);
+
+ widget = GTK_WIDGET (buffered_widget);
+
+ pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, widget->allocation.width, widget->allocation.height);
+
+ nautilus_gdk_pixbuf_fill_rectangle_with_color (pixbuf, NULL, buffered_widget->detail->background_color);
+
+ g_assert (pixbuf != NULL);
+
+ return pixbuf;
+}
+
+static GdkPixbuf*
+create_background_pixbuf_from_ancestor (const NautilusBufferedWidget *buffered_widget)
{
GtkWidget *widget;
- GdkPixbuf *pixbuf;
+ GdkPixbuf *pixbuf = NULL;
GtkWidget *background_ancestor;
g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), NULL);
- g_return_val_if_fail (gc != NULL, NULL);
widget = GTK_WIDGET (buffered_widget);
background_ancestor = nautilus_gtk_widget_find_background_ancestor (widget);
-
+
if (background_ancestor != NULL) {
NautilusBackground *background;
GdkPixmap *pixmap;
GdkRectangle background_area;
-
+
background = nautilus_get_widget_background (background_ancestor);
g_assert (NAUTILUS_IS_BACKGROUND (background));
@@ -527,7 +568,7 @@ buffered_widget_create_pixbuf_from_background (const NautilusBufferedWidget *buf
pixmap = gdk_pixmap_new (widget->window, background_area.width, background_area.height, -1);
- nautilus_background_draw (background, pixmap, gc, &background_area, 0, 0);
+ nautilus_background_draw (background, pixmap, buffered_widget->detail->copy_area_gc, &background_area, 0, 0);
pixbuf = gdk_pixbuf_get_from_drawable (NULL,
pixmap,
@@ -538,37 +579,40 @@ buffered_widget_create_pixbuf_from_background (const NautilusBufferedWidget *buf
0,
widget->allocation.width,
widget->allocation.height);
-
+
+ g_assert (pixbuf != NULL);
+
gdk_pixmap_unref (pixmap);
}
- else {
- GdkPixmap *pixmap;
- pixmap = gdk_pixmap_new (widget->window, widget->allocation.width, widget->allocation.height, -1);
-
- gtk_paint_flat_box (widget->style,
- pixmap,
- widget->state,
- GTK_SHADOW_NONE,
- NULL,
- widget,
- "eventbox",
- 0,
- 0,
- widget->allocation.width,
- widget->allocation.height);
+ return pixbuf;
+}
- pixbuf = gdk_pixbuf_get_from_drawable (NULL,
- pixmap,
- gdk_rgb_get_cmap (),
- 0,
- 0,
- 0,
- 0,
- widget->allocation.width,
- widget->allocation.height);
- }
+static GdkPixbuf*
+create_background_pixbuf (const NautilusBufferedWidget *buffered_widget)
+{
+ GdkPixbuf *pixbuf;
+
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), NULL);
+ switch (buffered_widget->detail->background_type) {
+ case NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE:
+ pixbuf = create_background_pixbuf_from_ancestor (buffered_widget);
+ if (!pixbuf) {
+ pixbuf = create_background_pixbuf_from_none (buffered_widget);
+ }
+ break;
+
+ case NAUTILUS_BACKGROUND_SOLID:
+ pixbuf = create_background_pixbuf_from_solid (buffered_widget);
+ break;
+
+ default:
+ case NAUTILUS_BACKGROUND_NONE:
+ pixbuf = create_background_pixbuf_from_none (buffered_widget);
+ break;
+ }
+
g_assert (pixbuf != NULL);
return pixbuf;
@@ -789,3 +833,101 @@ nautilus_buffered_widget_get_vertical_offset (const NautilusBufferedWidget *buff
return buffered_widget->detail->vertical_offset;
}
+
+/**
+ * nautilus_buffered_widget_set_background_type:
+ *
+ * @buffered_widget: A NautilusBufferedWidget
+ * @background_type: The new background type
+ *
+ * Change the background type for the widget as follows:
+ *
+ * NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE:
+ *
+ * Look for the closest ancestor widget that has an attatched
+ * NautilusBackground and use that. If that fails, then use
+ * the widget's background as specified by its attachted GtkStyle.
+ *
+ * NAUTILUS_BACKGROUND_NONE:
+ *
+ * Use the widget's background as specified by its attachted GtkStyle.
+ *
+ * NAUTILUS_BACKGROUND_SOLID:
+ *
+ * Use a solid color for the background. This solid color can be
+ * changed with nautilus_buffered_widget_set_background_color()
+ */
+void
+nautilus_buffered_widget_set_background_type (NautilusBufferedWidget *buffered_widget,
+ NautilusBackgroundType background_type)
+{
+ g_return_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget));
+ g_return_if_fail (background_type >= NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE);
+ g_return_if_fail (background_type <= NAUTILUS_BACKGROUND_SOLID);
+
+ if (background_type != buffered_widget->detail->background_type)
+ {
+ buffered_widget->detail->background_type = background_type;
+
+ nautilus_buffered_widget_clear_buffer (NAUTILUS_BUFFERED_WIDGET (buffered_widget));
+
+ gtk_widget_queue_draw (GTK_WIDGET (buffered_widget));
+ }
+}
+
+/**
+ * nautilus_buffered_widget_get_background_type:
+ *
+ * @buffered_widget: A NautilusBufferedWidget
+ *
+ * Return value: The current background type.
+ */
+NautilusBackgroundType
+nautilus_buffered_widget_get_background_type (const NautilusBufferedWidget *buffered_widget)
+{
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), 0);
+
+ return buffered_widget->detail->background_type;
+}
+
+/**
+ * nautilus_buffered_widget_set_background_color:
+ *
+ * @buffered_widget: A NautilusBufferedWidget
+ * @background_color: The new background color
+ *
+ * Set the background color to use for when the widget's background_type is
+ * NAUTILUS_BACKGROUND_SOLID.
+ */
+void
+nautilus_buffered_widget_set_background_color (NautilusBufferedWidget *buffered_widget,
+ guint32 background_color)
+{
+ g_return_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget));
+
+ if (background_color != buffered_widget->detail->background_color)
+ {
+ buffered_widget->detail->background_color = background_color;
+
+ if (buffered_widget->detail->background_type == NAUTILUS_BACKGROUND_SOLID) {
+ nautilus_buffered_widget_clear_buffer (NAUTILUS_BUFFERED_WIDGET (buffered_widget));
+
+ gtk_widget_queue_draw (GTK_WIDGET (buffered_widget));
+ }
+ }
+}
+
+/**
+ * nautilus_buffered_widget_get_background_color:
+ *
+ * @buffered_widget: A NautilusBufferedWidget
+ *
+ * Return value: The current background color.
+ */
+guint32
+nautilus_buffered_widget_get_background_color (const NautilusBufferedWidget *buffered_widget)
+{
+ g_return_val_if_fail (NAUTILUS_IS_BUFFERED_WIDGET (buffered_widget), 0);
+
+ return buffered_widget->detail->background_color;
+}
diff --git a/libnautilus-private/nautilus-buffered-widget.h b/libnautilus-private/nautilus-buffered-widget.h
index 0a664a25b..3437a30e8 100644
--- a/libnautilus-private/nautilus-buffered-widget.h
+++ b/libnautilus-private/nautilus-buffered-widget.h
@@ -83,19 +83,31 @@ typedef struct
guint height;
} NautilusPixbufSize;
-GtkType nautilus_buffered_widget_get_type (void);
-void nautilus_buffered_widget_clear_buffer (NautilusBufferedWidget *buffered_widget);
-void nautilus_buffered_widget_set_tile_pixbuf (NautilusBufferedWidget *buffered_widget,
- GdkPixbuf *pixbuf);
-GdkPixbuf* nautilus_buffered_widget_get_tile_pixbuf (const NautilusBufferedWidget *buffered_widget);
-NautilusPixbufSize nautilus_buffered_get_tile_pixbuf_size (const NautilusBufferedWidget *buffered_widget);
-void nautilus_buffered_widget_set_vertical_offset (NautilusBufferedWidget *image,
- int vertical_offset);
-int nautilus_buffered_widget_get_vertical_offset (const NautilusBufferedWidget *buffered_widget);
-void nautilus_buffered_widget_set_horizontal_offset (NautilusBufferedWidget *image,
- int horizontal_offset);
-int nautilus_buffered_widget_get_horizontal_offset (const NautilusBufferedWidget *buffered_widget);
-
+typedef enum
+{
+ NAUTILUS_BACKGROUND_ANCESTOR_OR_NONE,
+ NAUTILUS_BACKGROUND_NONE,
+ NAUTILUS_BACKGROUND_SOLID
+} NautilusBackgroundType;
+
+GtkType nautilus_buffered_widget_get_type (void);
+void nautilus_buffered_widget_clear_buffer (NautilusBufferedWidget *buffered_widget);
+void nautilus_buffered_widget_set_tile_pixbuf (NautilusBufferedWidget *buffered_widget,
+ GdkPixbuf *pixbuf);
+GdkPixbuf* nautilus_buffered_widget_get_tile_pixbuf (const NautilusBufferedWidget *buffered_widget);
+NautilusPixbufSize nautilus_buffered_get_tile_pixbuf_size (const NautilusBufferedWidget *buffered_widget);
+void nautilus_buffered_widget_set_vertical_offset (NautilusBufferedWidget *image,
+ int vertical_offset);
+int nautilus_buffered_widget_get_vertical_offset (const NautilusBufferedWidget *buffered_widget);
+void nautilus_buffered_widget_set_horizontal_offset (NautilusBufferedWidget *image,
+ int horizontal_offset);
+int nautilus_buffered_widget_get_horizontal_offset (const NautilusBufferedWidget *buffered_widget);
+void nautilus_buffered_widget_set_background_type (NautilusBufferedWidget *image,
+ NautilusBackgroundType background_type);
+NautilusBackgroundType nautilus_buffered_widget_get_background_type (const NautilusBufferedWidget *image);
+void nautilus_buffered_widget_set_background_color (NautilusBufferedWidget *image,
+ guint32 background_color);
+guint32 nautilus_buffered_widget_get_background_color (const NautilusBufferedWidget *image);
END_GNOME_DECLS
diff --git a/libnautilus-private/nautilus-gdk-extensions.c b/libnautilus-private/nautilus-gdk-extensions.c
index 7381b48d2..ecf3c8b5a 100644
--- a/libnautilus-private/nautilus-gdk-extensions.c
+++ b/libnautilus-private/nautilus-gdk-extensions.c
@@ -764,6 +764,22 @@ nautilus_gdk_create_copy_area_gc (GdkWindow *window)
return copy_area_gc;
}
+void
+nautilus_gdk_gc_ref_if_not_null (GdkGC *gc_or_null)
+{
+ if (gc_or_null != NULL) {
+ gdk_gc_ref (gc_or_null);
+ }
+}
+
+void
+nautilus_gdk_gc_unref_if_not_null (GdkGC *gc_or_null)
+{
+ if (gc_or_null != NULL) {
+ gdk_gc_unref (gc_or_null);
+ }
+}
+
#if ! defined (NAUTILUS_OMIT_SELF_CHECK)
static char *
diff --git a/libnautilus-private/nautilus-gdk-extensions.h b/libnautilus-private/nautilus-gdk-extensions.h
index fbd713402..440473b42 100644
--- a/libnautilus-private/nautilus-gdk-extensions.h
+++ b/libnautilus-private/nautilus-gdk-extensions.h
@@ -68,6 +68,7 @@ char * nautilus_gradient_set_right_color_spec (const char *grad
char * nautilus_gradient_set_bottom_color_spec (const char *gradient_spec,
const char *bottom_color);
+
/* A version of parse_color that substitutes a default color instead of returning
a boolean to indicate it cannot be parsed.
*/
@@ -79,10 +80,11 @@ void nautilus_gdk_color_parse_with_white_default (const char *colo
guint32 nautilus_parse_rgb_with_default (const char *color_spec,
guint32 default_rgb);
guint32 nautilus_parse_rgb_with_white_default (const char *color_spec);
-guint32 nautilus_rgb_shift_color (guint32 color,
- float shift_by);
-guint32 nautilus_gdk_color_to_rgb (const GdkColor *color);
+guint32 nautilus_rgb_shift_color (guint32 color,
+ float shift_by);
+guint32 nautilus_gdk_color_to_rgb (const GdkColor *color);
GdkColor * nautilus_gdk_rgb_to_color (const guint32 color);
+
/* Fill routines that take GdkRectangle parameters instead of four integers. */
void nautilus_fill_rectangle (GdkDrawable *drawable,
GdkGC *gc,
@@ -97,9 +99,11 @@ void nautilus_fill_rectangle_with_gradient (GdkDrawable *draw
guint32 start_rgb,
guint32 end_rgb,
gboolean horizontal_gradient);
+
/* A routine to get a 50% gray stippled bitmap for use in some types of highlighting. */
GdkBitmap *nautilus_stipple_bitmap (void);
+
/* Misc GdkRectangle helper functions */
gboolean nautilus_rectangle_contains (const GdkRectangle *rectangle,
int x,
@@ -108,27 +112,33 @@ void nautilus_rectangle_inset (GdkRectangle *rect
int x,
int y);
+
/* A basic operation we use for drawing gradients is interpolating two colors.*/
guint32 nautilus_interpolate_color (gdouble ratio,
guint32 start_rgb,
guint32 end_rgb);
+
/* Misc GdkFont helper functions */
gboolean nautilus_gdk_font_equal (GdkFont *font_a_null_allowed,
GdkFont *font_b_null_allowed);
GdkFont * nautilus_get_largest_fitting_font (const char *text_to_format,
int width,
const char *font_format);
-GdkFont * nautilus_gdk_font_get_bold (const GdkFont *plain);
+GdkFont * nautilus_gdk_font_get_bold (const GdkFont *plain);
+
/* Misc GdkWindow helper functions */
void nautilus_gdk_window_bring_to_front (GdkWindow *window);
+
/* In GNOME 2.0 this function will be in the libraries */
void nautilus_set_mini_icon (GdkWindow *window,
GdkPixmap *pixmap,
GdkBitmap *mask);
-GdkGC * nautilus_gdk_create_copy_area_gc (GdkWindow *window);
+GdkGC * nautilus_gdk_create_copy_area_gc (GdkWindow *window);
+void nautilus_gdk_gc_ref_if_not_null (GdkGC *gc_or_null);
+void nautilus_gdk_gc_unref_if_not_null (GdkGC *gc_or_null);
#endif /* NAUTILUS_GDK_EXTENSIONS_H */
diff --git a/libnautilus-private/nautilus-label.c b/libnautilus-private/nautilus-label.c
index 20efa32ba..4e89b14ad 100644
--- a/libnautilus-private/nautilus-label.c
+++ b/libnautilus-private/nautilus-label.c
@@ -432,9 +432,15 @@ label_recompute_line_geometries (NautilusLabel *label)
/* Public NautilusLabel */
GtkWidget*
-nautilus_label_new (void)
+nautilus_label_new (const char *text)
{
- return GTK_WIDGET (gtk_type_new (nautilus_label_get_type ()));
+ NautilusLabel *label;
+
+ label = NAUTILUS_LABEL (gtk_type_new (nautilus_label_get_type ()));
+
+ nautilus_label_set_text (label, text);
+
+ return GTK_WIDGET (label);
}
void
diff --git a/libnautilus-private/nautilus-label.h b/libnautilus-private/nautilus-label.h
index 7a9363b55..d76d049eb 100644
--- a/libnautilus-private/nautilus-label.h
+++ b/libnautilus-private/nautilus-label.h
@@ -71,7 +71,7 @@ struct _NautilusLabelClass
};
GtkType nautilus_label_get_type (void);
-GtkWidget * nautilus_label_new (void);
+GtkWidget * nautilus_label_new (const char *text);
void nautilus_label_set_text (NautilusLabel *label,
const char *text);
char* nautilus_label_get_text (NautilusLabel *label);
@@ -105,7 +105,6 @@ void nautilus_label_set_drop_shadow_color (NautilusLabel
guint32 color);
guint32 nautilus_label_get_drop_shadow_color (const NautilusLabel *label);
-
END_GNOME_DECLS
#endif /* NAUTILUS_LABEL_H */
diff --git a/src/nautilus-first-time-druid.c b/src/nautilus-first-time-druid.c
index d26449f2d..57290b852 100644
--- a/src/nautilus-first-time-druid.c
+++ b/src/nautilus-first-time-druid.c
@@ -195,18 +195,17 @@ update_selection_changed (GtkWidget *radio_buttons, gpointer user_data)
/* utility to allocate an anti-aliased description label */
static GtkWidget*
-make_anti_aliased_label (const char *description)
+make_anti_aliased_label (const char *text)
{
GtkWidget *label;
- label = nautilus_label_new ();
+ label = nautilus_label_new (text);
nautilus_label_set_font_from_components (NAUTILUS_LABEL (label), "helvetica", "medium", NULL, NULL);
nautilus_label_set_font_size (NAUTILUS_LABEL (label), 14);
nautilus_label_set_text_justification (NAUTILUS_LABEL (label),
GTK_JUSTIFY_LEFT);
- nautilus_label_set_text (NAUTILUS_LABEL (label), description);
return label;
}
@@ -459,10 +458,9 @@ set_up_update_feedback_page (NautilusDruidPageEazel *page)
gtk_box_pack_start (GTK_BOX (main_box), label, FALSE, FALSE, 8);
- download_label = nautilus_label_new ();
+ download_label = nautilus_label_new (_("Downloading Nautilus updates..."));
nautilus_label_set_font_from_components (NAUTILUS_LABEL (download_label), "helvetica", "medium", NULL, NULL);
nautilus_label_set_font_size (NAUTILUS_LABEL (download_label), 18);
- nautilus_label_set_text (NAUTILUS_LABEL (download_label), _("Downloading Nautilus updates..."));
gtk_widget_show (download_label);
diff --git a/src/nautilus-property-browser.c b/src/nautilus-property-browser.c
index 0ff324c5c..b79877ecd 100644
--- a/src/nautilus-property-browser.c
+++ b/src/nautilus-property-browser.c
@@ -181,18 +181,6 @@ nautilus_property_browser_initialize_class (GtkObjectClass *object_klass)
widget_class->drag_end = nautilus_property_browser_drag_end;
}
-/* utility to allocate an anti-aliased label */
-static GtkWidget*
-make_anti_aliased_label (const char *description)
-{
- GtkWidget *label;
-
- label = nautilus_label_new ();
- nautilus_label_set_text (NAUTILUS_LABEL (label), description);
- return label;
-}
-
-
/* initialize the instance's fields, create the necessary subviews, etc. */
static void
@@ -281,14 +269,14 @@ nautilus_property_browser_initialize (GtkObject *object)
gtk_container_add(GTK_CONTAINER(temp_frame), temp_hbox);
/* add the title label */
- property_browser->details->title_label = make_anti_aliased_label (_("Select A Category:"));
+ property_browser->details->title_label = nautilus_label_new (_("Select A Category:"));
nautilus_label_set_font_size (NAUTILUS_LABEL (property_browser->details->title_label), 18);
gtk_widget_show(property_browser->details->title_label);
gtk_box_pack_start (GTK_BOX(temp_hbox), property_browser->details->title_label, FALSE, FALSE, 8);
/* add the help label */
- property_browser->details->help_label = make_anti_aliased_label ("");
+ property_browser->details->help_label = nautilus_label_new ("");
nautilus_label_set_font_size (NAUTILUS_LABEL (property_browser->details->help_label), 12);
gtk_widget_show(property_browser->details->help_label);
@@ -316,7 +304,7 @@ nautilus_property_browser_initialize (GtkObject *object)
property_browser->details->add_button = gtk_button_new ();
gtk_widget_show(property_browser->details->add_button);
- property_browser->details->add_button_label = make_anti_aliased_label (_("Add new..."));
+ property_browser->details->add_button_label = nautilus_label_new (_("Add new..."));
nautilus_label_set_font_size (NAUTILUS_LABEL (property_browser->details->add_button_label), 12);
gtk_widget_show(property_browser->details->add_button_label);
@@ -329,7 +317,7 @@ nautilus_property_browser_initialize (GtkObject *object)
property_browser->details->remove_button = gtk_button_new();
gtk_widget_show(property_browser->details->remove_button);
- property_browser->details->remove_button_label = make_anti_aliased_label (_("Add new..."));
+ property_browser->details->remove_button_label = nautilus_label_new (_("Add new..."));
nautilus_label_set_font_size (NAUTILUS_LABEL (property_browser->details->remove_button_label), 12);
gtk_widget_show(property_browser->details->remove_button_label);
@@ -1498,11 +1486,12 @@ make_properties_from_directory_path (NautilusPropertyBrowser *property_browser,
gtk_box_pack_start(GTK_BOX(temp_vbox), event_box, FALSE, FALSE, 0);
filtered_name = format_name_for_display (current_file_info->name);
- /* this is temporarily disabled to due scrolling bug that Ramiro will fix soon
- label = make_anti_aliased_label (filtered_name);
+ label = nautilus_label_new (filtered_name);
+ nautilus_buffered_widget_set_background_type (NAUTILUS_BUFFERED_WIDGET (label),
+ NAUTILUS_BACKGROUND_SOLID);
+ nautilus_buffered_widget_set_background_color (NAUTILUS_BUFFERED_WIDGET (label),
+ NAUTILUS_RGB_COLOR_WHITE);
nautilus_label_set_font_size (NAUTILUS_LABEL (label), 12);
- */
- label = gtk_label_new (filtered_name);
g_free(filtered_name);
gtk_box_pack_start (GTK_BOX(temp_vbox), label, FALSE, FALSE, 0);
@@ -1645,7 +1634,7 @@ make_properties_from_xml_node (NautilusPropertyBrowser *property_browser, xmlNod
gtk_box_pack_start (GTK_BOX (container), label_box, FALSE, FALSE, 0);
label_text = make_color_label (color_str);
- label = make_anti_aliased_label (label_text);
+ label = nautilus_label_new (label_text);
nautilus_label_set_font_size (NAUTILUS_LABEL (label), 10);
g_free (label_text);
@@ -1727,7 +1716,7 @@ make_category_link(NautilusPropertyBrowser *property_browser, char* name, char *
gtk_box_pack_start (GTK_BOX (temp_vbox), button, FALSE, FALSE, 1);
/* use the name as a label */
- label = make_anti_aliased_label (display_name);
+ label = nautilus_label_new (display_name);
nautilus_label_set_font_size (NAUTILUS_LABEL (label), 12);
gtk_box_pack_start (GTK_BOX (temp_vbox), label, FALSE, FALSE, 0);
diff --git a/src/nautilus-sidebar-title.c b/src/nautilus-sidebar-title.c
index 94a2f0601..1b3b99696 100644
--- a/src/nautilus-sidebar-title.c
+++ b/src/nautilus-sidebar-title.c
@@ -594,7 +594,7 @@ sidebar_create_smooth_components_if_needed (NautilusSidebarTitle *sidebar_title)
/* Label */
if (sidebar_title->details->smooth_title_label == NULL) {
- sidebar_title->details->smooth_title_label = nautilus_label_new ();
+ sidebar_title->details->smooth_title_label = nautilus_label_new ("");
sidebar_title->details->smooth_title_label_font =
NAUTILUS_SCALABLE_FONT (nautilus_scalable_font_new ("helvetica", "bold", NULL, NULL));
@@ -607,7 +607,7 @@ sidebar_create_smooth_components_if_needed (NautilusSidebarTitle *sidebar_title)
/* More info */
if (sidebar_title->details->smooth_more_info_label == NULL) {
- sidebar_title->details->smooth_more_info_label = nautilus_label_new ();
+ sidebar_title->details->smooth_more_info_label = nautilus_label_new ("");
sidebar_title->details->smooth_more_info_label_font =
NAUTILUS_SCALABLE_FONT (nautilus_scalable_font_new ("helvetica", "medium", NULL, NULL));
diff --git a/src/nautilus-theme-selector.c b/src/nautilus-theme-selector.c
index 73c5dba64..f74e361e9 100644
--- a/src/nautilus-theme-selector.c
+++ b/src/nautilus-theme-selector.c
@@ -122,18 +122,6 @@ nautilus_theme_selector_initialize_class (GtkObjectClass *object_klass)
object_klass->destroy = nautilus_theme_selector_destroy;
}
-/* utility to make anti-aliased labels */
-
-static GtkWidget*
-make_anti_aliased_label (const char *description)
-{
- GtkWidget *label;
-
- label = nautilus_label_new ();
- nautilus_label_set_text (NAUTILUS_LABEL (label), description);
- return label;
-}
-
/* initialize the instance's fields, create the necessary subviews, etc. */
static void
@@ -188,14 +176,14 @@ nautilus_theme_selector_initialize (GtkObject *object)
gtk_container_add(GTK_CONTAINER(temp_frame), temp_hbox);
/* add the title label */
- theme_selector->details->title_label = make_anti_aliased_label (_("Nautilus Theme:"));
+ theme_selector->details->title_label = nautilus_label_new (_("Nautilus Theme:"));
nautilus_label_set_font_size (NAUTILUS_LABEL (theme_selector->details->title_label), 18);
gtk_widget_show(theme_selector->details->title_label);
gtk_box_pack_start (GTK_BOX(temp_hbox), theme_selector->details->title_label, FALSE, FALSE, 8);
/* add the help label */
- theme_selector->details->help_label = make_anti_aliased_label (_("Click on a theme to change the\nappearance of Nautilus."));
+ theme_selector->details->help_label = nautilus_label_new (_("Click on a theme to change the\nappearance of Nautilus."));
nautilus_label_set_font_size (NAUTILUS_LABEL (theme_selector->details->help_label), 12);
gtk_widget_show(theme_selector->details->help_label);
@@ -248,7 +236,7 @@ nautilus_theme_selector_initialize (GtkObject *object)
theme_selector->details->add_button = gtk_button_new ();
gtk_widget_show(theme_selector->details->add_button);
- theme_selector->details->add_button_label = make_anti_aliased_label (_("Add new theme"));
+ theme_selector->details->add_button_label = nautilus_label_new (_("Add new theme"));
nautilus_label_set_font_size (NAUTILUS_LABEL (theme_selector->details->add_button_label), 14);
gtk_widget_show(theme_selector->details->add_button_label);
@@ -260,7 +248,7 @@ nautilus_theme_selector_initialize (GtkObject *object)
/* now create the "remove" button */
theme_selector->details->remove_button = gtk_button_new();
- theme_selector->details->remove_button_label = make_anti_aliased_label (_("Remove theme"));
+ theme_selector->details->remove_button_label = nautilus_label_new (_("Remove theme"));
gtk_widget_show(theme_selector->details->remove_button_label);
gtk_container_add (GTK_CONTAINER(theme_selector->details->remove_button), theme_selector->details->remove_button_label);
gtk_box_pack_end (GTK_BOX (theme_selector->details->bottom_box),
diff --git a/test/test-nautilus-image.c b/test/test-nautilus-image.c
index 8361672d1..8d2af9786 100644
--- a/test/test-nautilus-image.c
+++ b/test/test-nautilus-image.c
@@ -609,7 +609,7 @@ main (int argc, char* argv[])
main_box = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), main_box);
- label = nautilus_label_new ();
+ label = nautilus_label_new ("Label that doesn't suck\nFoo\nBar");
bottom_box = gtk_vbox_new (FALSE, 4);
@@ -623,8 +623,6 @@ main (int argc, char* argv[])
gtk_box_pack_start (GTK_BOX (bottom_box), tool_box2, TRUE, TRUE, 0);
gtk_box_pack_end (GTK_BOX (bottom_box), tool_box3, TRUE, TRUE, 10);
- nautilus_label_set_text (NAUTILUS_LABEL (label), "Label that doesn't suck\nFoo\nBar");
-
gtk_box_pack_start (GTK_BOX (main_box), label, TRUE, TRUE, 10);
gtk_box_pack_end (GTK_BOX (main_box), bottom_box, TRUE, TRUE, 10);
diff --git a/test/test-nautilus-label.c b/test/test-nautilus-label.c
index 217780490..ce4aabfa7 100644
--- a/test/test-nautilus-label.c
+++ b/test/test-nautilus-label.c
@@ -635,7 +635,7 @@ main (int argc, char* argv[])
main_box = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), main_box);
- label = nautilus_label_new ();
+ label = nautilus_label_new ("Label that doesn't suck\nFoo\nBar");
bottom_box = gtk_vbox_new (FALSE, 4);
@@ -649,8 +649,6 @@ main (int argc, char* argv[])
gtk_box_pack_start (GTK_BOX (bottom_box), tool_box2, TRUE, TRUE, 0);
gtk_box_pack_end (GTK_BOX (bottom_box), tool_box3, TRUE, TRUE, 10);
- nautilus_label_set_text (NAUTILUS_LABEL (label), "Label that doesn't suck\nFoo\nBar");
-
gtk_box_pack_start (GTK_BOX (main_box), label, TRUE, TRUE, 10);
gtk_box_pack_end (GTK_BOX (main_box), bottom_box, TRUE, TRUE, 10);