diff options
author | Andy Hertzfeld <andy@src.gnome.org> | 2000-08-24 07:58:33 +0000 |
---|---|---|
committer | Andy Hertzfeld <andy@src.gnome.org> | 2000-08-24 07:58:33 +0000 |
commit | 3820e600c8ab4ac5812585f65cd4f3fa2cc20a5e (patch) | |
tree | 12757d95a1d30b03ffa670c151636611a67a252a /cut-n-paste-code | |
parent | cc32da32fceeb9e423a0d9b4f3155312f783d7ea (diff) | |
download | nautilus-3820e600c8ab4ac5812585f65cd4f3fa2cc20a5e.tar.gz |
made the druid's logo image be dynamically sized instead of fixed size;
made the druid's logo image be dynamically sized instead of fixed size;
also, it now uses the anti-aliased canvas for prettier edges. Made the
first time druid set up the logo images.
Diffstat (limited to 'cut-n-paste-code')
3 files changed, 89 insertions, 43 deletions
diff --git a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.c b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.c index b5609cc46..8375700c6 100644 --- a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.c +++ b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.c @@ -59,6 +59,7 @@ static void nautilus_druid_page_finish_prepare (NautilusDruidPage *page, static NautilusDruidPageClass *parent_class = NULL; #define LOGO_WIDTH 50.0 +#define LOGO_HEIGHT 50.0 #define DRUID_PAGE_HEIGHT 318 #define DRUID_PAGE_WIDTH 516 #define DRUID_PAGE_LEFT_WIDTH 100.0 @@ -126,7 +127,7 @@ nautilus_druid_page_finish_init (NautilusDruidPageFinish *druid_page_finish) /* Set up the canvas */ gtk_container_set_border_width (GTK_CONTAINER (druid_page_finish), 0); - druid_page_finish->_priv->canvas = gnome_canvas_new (); + druid_page_finish->_priv->canvas = gnome_canvas_new_aa (); gtk_widget_set_usize (druid_page_finish->_priv->canvas, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); gtk_widget_show (druid_page_finish->_priv->canvas); gnome_canvas_set_scroll_region (GNOME_CANVAS (druid_page_finish->_priv->canvas), 0.0, 0.0, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); @@ -141,7 +142,7 @@ nautilus_druid_page_finish_destroy(GtkObject *object) g_free(druid_page_finish->_priv); druid_page_finish->_priv = NULL; - if(GTK_OBJECT_CLASS(parent_class)->destroy) + if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy)(object); } @@ -150,9 +151,18 @@ static void nautilus_druid_page_finish_configure_size (NautilusDruidPageFinish *druid_page_finish, gint width, gint height) { gfloat watermark_width = DRUID_PAGE_LEFT_WIDTH; - gfloat watermark_height = (gfloat) height - LOGO_WIDTH + GNOME_PAD * 2.0; - gfloat watermark_ypos = LOGO_WIDTH + GNOME_PAD * 2.0; - + gfloat watermark_height = (gfloat) height - LOGO_HEIGHT + GNOME_PAD * 2.0; + gfloat watermark_ypos = LOGO_HEIGHT + GNOME_PAD * 2.0; + gfloat cur_logo_width, cur_logo_height; + + if (druid_page_finish->logo_image) { + cur_logo_width = gdk_pixbuf_get_width (druid_page_finish->logo_image); + cur_logo_height = gdk_pixbuf_get_height (druid_page_finish->logo_image); + } else { + cur_logo_width = LOGO_WIDTH; + cur_logo_height = LOGO_HEIGHT; + } + if (druid_page_finish->watermark_image) { watermark_width = gdk_pixbuf_get_width (druid_page_finish->watermark_image); watermark_height = gdk_pixbuf_get_height (druid_page_finish->watermark_image); @@ -170,22 +180,22 @@ nautilus_druid_page_finish_configure_size (NautilusDruidPageFinish *druid_page_f "y2", (gfloat) height, "width_units", 1.0, NULL); gnome_canvas_item_set (druid_page_finish->_priv->textbox_item, - "x1", (gfloat) watermark_width, - "y1", (gfloat) LOGO_WIDTH + GNOME_PAD * 2.0, + "x1", watermark_width, + "y1", cur_logo_height + GNOME_PAD * 2.0, "x2", (gfloat) width, "y2", (gfloat) height, "width_units", 1.0, NULL); gnome_canvas_item_set (druid_page_finish->_priv->logoframe_item, - "x1", (gfloat) width - LOGO_WIDTH -GNOME_PAD, + "x1", (gfloat) width - cur_logo_width -GNOME_PAD, "y1", (gfloat) GNOME_PAD, "x2", (gfloat) width - GNOME_PAD, - "y2", (gfloat) GNOME_PAD + LOGO_WIDTH, + "y2", (gfloat) GNOME_PAD + cur_logo_height, "width_units", 1.0, NULL); gnome_canvas_item_set (druid_page_finish->_priv->logo_item, - "x", (gfloat) width - GNOME_PAD - LOGO_WIDTH, + "x", (gfloat) width - GNOME_PAD - cur_logo_width, "y", (gfloat) GNOME_PAD, - "width", (gfloat) LOGO_WIDTH, - "height", (gfloat) LOGO_WIDTH, NULL); + "width", (gfloat) cur_logo_width, + "height", (gfloat) cur_logo_height, NULL); gnome_canvas_item_set (druid_page_finish->_priv->watermark_item, "x", 0.0, "y", watermark_ypos, @@ -193,13 +203,13 @@ nautilus_druid_page_finish_configure_size (NautilusDruidPageFinish *druid_page_f "height", watermark_height, NULL); gnome_canvas_item_set (druid_page_finish->_priv->title_item, - "x", 15.0, - "y", (gfloat) GNOME_PAD + LOGO_WIDTH / 2.0, + "x", 15.0, + "y", (gfloat) GNOME_PAD + cur_logo_height / 2.0, "anchor", GTK_ANCHOR_WEST, NULL); gnome_canvas_item_set (druid_page_finish->_priv->text_item, "x", ((width - watermark_width) * 0.5) + watermark_width, - "y", LOGO_WIDTH + GNOME_PAD * 2.0 + (height - (LOGO_WIDTH + GNOME_PAD * 2.0))/ 2.0, + "y", LOGO_HEIGHT + GNOME_PAD * 2.0 + (height - (cur_logo_height + GNOME_PAD * 2.0))/ 2.0, "anchor", GTK_ANCHOR_CENTER, NULL); } @@ -501,6 +511,8 @@ nautilus_druid_page_finish_set_logo (NautilusDruidPageFinish *druid_pag gdk_pixbuf_ref (logo_image); gnome_canvas_item_set (druid_page_finish->_priv->logo_item, "pixbuf", druid_page_finish->logo_image, NULL); + nautilus_druid_page_finish_configure_size (druid_page_finish, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); + } void nautilus_druid_page_finish_set_watermark (NautilusDruidPageFinish *druid_page_finish, diff --git a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-standard.c b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-standard.c index 5d84ab8bc..b7e775031 100644 --- a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-standard.c +++ b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-standard.c @@ -61,6 +61,8 @@ static void nautilus_druid_page_standard_prepare (NautilusDruidPage static NautilusDruidPageClass *parent_class = NULL; #define LOGO_WIDTH 50.0 +#define LOGO_HEIGHT 50.0 + #define DRUID_PAGE_WIDTH 516 #define GDK_COLOR_TO_RGBA(color) GNOME_CANVAS_COLOR (color.red/256, color.green/256, color.blue/256) @@ -127,7 +129,7 @@ nautilus_druid_page_standard_init (NautilusDruidPageStandard *druid_page_standar vbox = gtk_vbox_new (FALSE, 0); hbox = gtk_hbox_new (FALSE, 0); druid_page_standard->vbox = gtk_vbox_new (FALSE, 0); - druid_page_standard->_priv->canvas = gnome_canvas_new (); + druid_page_standard->_priv->canvas = gnome_canvas_new_aa (); druid_page_standard->_priv->side_bar = gtk_drawing_area_new (); druid_page_standard->_priv->bottom_bar = gtk_drawing_area_new (); druid_page_standard->_priv->right_bar = gtk_drawing_area_new (); @@ -162,7 +164,7 @@ nautilus_druid_page_standard_init (NautilusDruidPageStandard *druid_page_standar gtk_box_pack_start (GTK_BOX (hbox), druid_page_standard->_priv->side_bar, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), druid_page_standard->vbox, TRUE, TRUE, 0); gtk_box_pack_end (GTK_BOX (hbox), druid_page_standard->_priv->right_bar, FALSE, FALSE, 0); - gtk_widget_set_usize (druid_page_standard->_priv->canvas, 508, LOGO_WIDTH + GNOME_PAD * 2); + gtk_widget_set_usize (druid_page_standard->_priv->canvas, 508, LOGO_HEIGHT + GNOME_PAD * 2); gtk_container_set_border_width (GTK_CONTAINER (druid_page_standard), 0); gtk_container_add (GTK_CONTAINER (druid_page_standard), vbox); gtk_widget_show_all (vbox); @@ -183,23 +185,39 @@ nautilus_druid_page_standard_destroy(GtkObject *object) static void nautilus_druid_page_standard_configure_size (NautilusDruidPageStandard *druid_page_standard, gint width, gint height) { + gfloat cur_logo_width, cur_logo_height; + + if (druid_page_standard->logo_image) { + cur_logo_width = gdk_pixbuf_get_width (druid_page_standard->logo_image); + cur_logo_height = gdk_pixbuf_get_height (druid_page_standard->logo_image); + } else { + cur_logo_width = LOGO_WIDTH; + cur_logo_height = LOGO_HEIGHT; + } + gnome_canvas_item_set (druid_page_standard->_priv->background_item, "x1", 0.0, "y1", 0.0, "x2", (gfloat) width, - "y2", (gfloat) LOGO_WIDTH + GNOME_PAD * 2, + "y2", (gfloat) cur_logo_height + GNOME_PAD * 2, "width_units", 1.0, NULL); gnome_canvas_item_set (druid_page_standard->_priv->logoframe_item, - "x1", (gfloat) width - LOGO_WIDTH - GNOME_PAD, + "x1", (gfloat) width - cur_logo_width - GNOME_PAD, "y1", (gfloat) GNOME_PAD, "x2", (gfloat) width - GNOME_PAD, - "y2", (gfloat) GNOME_PAD + LOGO_WIDTH, + "y2", (gfloat) GNOME_PAD + cur_logo_height, "width_units", 1.0, NULL); gnome_canvas_item_set (druid_page_standard->_priv->logo_item, - "x", (gfloat) width - GNOME_PAD - LOGO_WIDTH, + "x", (gfloat) width - GNOME_PAD - cur_logo_width, "y", (gfloat) GNOME_PAD, - "width", (gfloat) LOGO_WIDTH, - "height", (gfloat) LOGO_WIDTH, NULL); + "width", (gfloat) cur_logo_width, + "height", (gfloat) cur_logo_height, NULL); + gnome_canvas_item_set (druid_page_standard->_priv->title_item, + "x", 15.0, + "y", (gfloat) GNOME_PAD + cur_logo_height / 2.0, + "anchor", GTK_ANCHOR_WEST, + NULL); + } static void @@ -242,13 +260,7 @@ nautilus_druid_page_standard_construct (NautilusDruidPageStandard *druid_page_st "fill_color_rgba", fill_color, NULL); - gnome_canvas_item_set (druid_page_standard->_priv->title_item, - "x", 15.0, - "y", (gfloat) GNOME_PAD + LOGO_WIDTH / 2.0, - "anchor", GTK_ANCHOR_WEST, - NULL); - - nautilus_druid_page_standard_configure_size (druid_page_standard, DRUID_PAGE_WIDTH, GNOME_PAD * 2 + LOGO_WIDTH); + nautilus_druid_page_standard_configure_size (druid_page_standard, DRUID_PAGE_WIDTH, GNOME_PAD * 2 + LOGO_HEIGHT); gtk_signal_connect (GTK_OBJECT (druid_page_standard), "prepare", nautilus_druid_page_standard_prepare, @@ -398,9 +410,13 @@ void nautilus_druid_page_standard_set_logo (NautilusDruidPageStandard *druid_page_standard, GdkPixbuf*logo_image) { + GtkWidget *widget; + g_return_if_fail (druid_page_standard != NULL); g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_STANDARD (druid_page_standard)); + widget = GTK_WIDGET (druid_page_standard); + if (druid_page_standard->logo_image) gdk_pixbuf_unref (druid_page_standard->logo_image); @@ -408,5 +424,10 @@ nautilus_druid_page_standard_set_logo (NautilusDruidPageStandard *druid gdk_pixbuf_ref (logo_image); gnome_canvas_item_set (druid_page_standard->_priv->logo_item, "pixbuf", druid_page_standard->logo_image, NULL); + + nautilus_druid_page_standard_configure_size (druid_page_standard, + widget->allocation.width, + widget->allocation.height); + } diff --git a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.c b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.c index da3b854a6..2b21312ad 100644 --- a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.c +++ b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.c @@ -57,7 +57,8 @@ static void nautilus_druid_page_start_prepare (NautilusDruidPage *page, gpointer *data); static NautilusDruidPageClass *parent_class = NULL; -#define LOGO_WIDTH 50.0 +#define LOGO_WIDTH 50.0 +#define LOGO_HEIGHT 50.0 #define DRUID_PAGE_HEIGHT 318 #define DRUID_PAGE_WIDTH 516 #define DRUID_PAGE_LEFT_WIDTH 100.0 @@ -126,7 +127,7 @@ nautilus_druid_page_start_init (NautilusDruidPageStart *druid_page_start) /* Set up the canvas */ gtk_container_set_border_width (GTK_CONTAINER (druid_page_start), 0); - druid_page_start->_priv->canvas = gnome_canvas_new (); + druid_page_start->_priv->canvas = gnome_canvas_new_aa (); gtk_widget_set_usize (druid_page_start->_priv->canvas, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); gtk_widget_show (druid_page_start->_priv->canvas); gnome_canvas_set_scroll_region (GNOME_CANVAS (druid_page_start->_priv->canvas), 0.0, 0.0, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); @@ -150,9 +151,18 @@ static void nautilus_druid_page_start_configure_size (NautilusDruidPageStart *druid_page_start, gint width, gint height) { gfloat watermark_width = DRUID_PAGE_LEFT_WIDTH; - gfloat watermark_height = (gfloat) height - LOGO_WIDTH + GNOME_PAD * 2.0; - gfloat watermark_ypos = LOGO_WIDTH + GNOME_PAD * 2.0; - + gfloat watermark_height = (gfloat) height - LOGO_HEIGHT + GNOME_PAD * 2.0; + gfloat watermark_ypos = LOGO_HEIGHT + GNOME_PAD * 2.0; + gfloat cur_logo_width, cur_logo_height; + + if (druid_page_start->logo_image) { + cur_logo_width = gdk_pixbuf_get_width (druid_page_start->logo_image); + cur_logo_height = gdk_pixbuf_get_height (druid_page_start->logo_image); + } else { + cur_logo_width = LOGO_WIDTH; + cur_logo_height = LOGO_HEIGHT; + } + if (druid_page_start->watermark_image) { watermark_width = gdk_pixbuf_get_width (druid_page_start->watermark_image); watermark_height = gdk_pixbuf_get_height (druid_page_start->watermark_image); @@ -171,21 +181,21 @@ nautilus_druid_page_start_configure_size (NautilusDruidPageStart *druid_page_sta "width_units", 1.0, NULL); gnome_canvas_item_set (druid_page_start->_priv->textbox_item, "x1", watermark_width, - "y1", LOGO_WIDTH + GNOME_PAD * 2.0, + "y1", cur_logo_height + GNOME_PAD * 2.0, "x2", (gfloat) width, "y2", (gfloat) height, "width_units", 1.0, NULL); gnome_canvas_item_set (druid_page_start->_priv->logoframe_item, - "x1", (gfloat) width - LOGO_WIDTH -GNOME_PAD, + "x1", (gfloat) width - cur_logo_width -GNOME_PAD, "y1", (gfloat) GNOME_PAD, "x2", (gfloat) width - GNOME_PAD, - "y2", (gfloat) GNOME_PAD + LOGO_WIDTH, + "y2", (gfloat) GNOME_PAD + cur_logo_height, "width_units", 1.0, NULL); gnome_canvas_item_set (druid_page_start->_priv->logo_item, - "x", (gfloat) width - GNOME_PAD - LOGO_WIDTH, + "x", (gfloat) width - GNOME_PAD - cur_logo_width, "y", (gfloat) GNOME_PAD, - "width", (gfloat) LOGO_WIDTH, - "height", (gfloat) LOGO_WIDTH, NULL); + "width", (gfloat) cur_logo_width, + "height", (gfloat) cur_logo_height, NULL); gnome_canvas_item_set (druid_page_start->_priv->watermark_item, "x", 0.0, "y", watermark_ypos, @@ -194,12 +204,12 @@ nautilus_druid_page_start_configure_size (NautilusDruidPageStart *druid_page_sta NULL); gnome_canvas_item_set (druid_page_start->_priv->title_item, "x", 15.0, - "y", (gfloat) GNOME_PAD + LOGO_WIDTH / 2.0, + "y", (gfloat) GNOME_PAD + cur_logo_height / 2.0, "anchor", GTK_ANCHOR_WEST, NULL); gnome_canvas_item_set (druid_page_start->_priv->text_item, "x", ((width - watermark_width) * 0.5) + watermark_width, - "y", LOGO_WIDTH + GNOME_PAD * 2.0 + (height - (LOGO_WIDTH + GNOME_PAD * 2.0))/ 2.0, + "y", LOGO_HEIGHT + GNOME_PAD * 2.0 + (height - (cur_logo_height + GNOME_PAD * 2.0))/ 2.0, "anchor", GTK_ANCHOR_CENTER, NULL); } @@ -513,7 +523,10 @@ nautilus_druid_page_start_set_logo (NautilusDruidPageStart *druid_page_ gdk_pixbuf_ref (logo_image); gnome_canvas_item_set (druid_page_start->_priv->logo_item, "pixbuf", druid_page_start->logo_image, NULL); + + nautilus_druid_page_start_configure_size (druid_page_start, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); } + void nautilus_druid_page_start_set_watermark (NautilusDruidPageStart *druid_page_start, GdkPixbuf *watermark) |