diff options
author | George Lebl <jirka@5z.com> | 2000-08-25 07:17:09 +0000 |
---|---|---|
committer | George Lebl <jirka@src.gnome.org> | 2000-08-25 07:17:09 +0000 |
commit | aad9b522621abc0ad435c8a42516d1e3ae0842a6 (patch) | |
tree | 1c592afa47cdba546a4036c7846e444f68c8a358 /cut-n-paste-code | |
parent | 1e65b3ab5fd1f669c1a1ea8c22816c29bfe7619d (diff) | |
download | nautilus-aad9b522621abc0ad435c8a42516d1e3ae0842a6.tar.gz |
Remove these as they are obscolete anyway.
Fri Aug 25 02:17:17 2000 George Lebl <jirka@5z.com>
* cut-n-paste-code/widgets/nautilus-druid/Makefile.am,
cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.c,
cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.h,
cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.c,
cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.h:
Remove these as they are obscolete anyway.
* cut-n-paste-code/widgets/nautilus-druid/nautilus-druid.c
(nautilus_druid_init), (nautilus_druid_size_request),
(nautilus_druid_size_allocate):
Fix calculating of size and borders
* icons/Makefile.am, icons/druid_*.png: Add Arlo's druid images.
* po/POTFILES.in,
cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-eazel.c,
cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-eazel.h:
Add the eazel druid page. Theoretically this should move to
libnautilus-extentions soon, including deriving nautilus-druid from
gnome-druid, in which way we can eliminate the entire
cut-n-paste mess for the druid. Likely to do this tommorrow with
the rest of the arloification.
* src/nautilus-first-time-druid.c (set_up_background),
(set_up_user_level_page), (set_up_service_signup_page),
(set_up_update_page), (set_up_update_feedback_page),
(set_page_sidebar), (nautilus_first_time_druid_show):
Use the eazel page for the druid and set up the sidebar image
to the standard one.
Diffstat (limited to 'cut-n-paste-code')
8 files changed, 729 insertions, 1277 deletions
diff --git a/cut-n-paste-code/widgets/nautilus-druid/Makefile.am b/cut-n-paste-code/widgets/nautilus-druid/Makefile.am index 69ccbe83b..5d9010074 100644 --- a/cut-n-paste-code/widgets/nautilus-druid/Makefile.am +++ b/cut-n-paste-code/widgets/nautilus-druid/Makefile.am @@ -3,6 +3,7 @@ NULL= noinst_LTLIBRARIES = libnautilus-druid.la INCLUDES = \ + -I$(top_srcdir) \ -I$(top_srcdir)/cut-n-paste-code \ $(GNOME_CFLAGS) \ $(GDK_PIXBUF_CFLAGS) \ @@ -12,9 +13,8 @@ libnautilus_druid_la_LDFLAGS = -static libnautilus_druid_la_SOURCES = \ nautilus-druid-page-edge.c \ - nautilus-druid-page-finish.c \ nautilus-druid-page-standard.c \ - nautilus-druid-page-start.c \ + nautilus-druid-page-eazel.c \ nautilus-druid-page.c \ nautilus-druid.c \ $(NULL) @@ -22,9 +22,8 @@ libnautilus_druid_la_SOURCES = \ # Everything is private for now noinst_HEADERS =\ nautilus-druid-page-edge.h \ - nautilus-druid-page-finish.h \ nautilus-druid-page-standard.h \ - nautilus-druid-page-start.h \ + nautilus-druid-page-eazel.h \ nautilus-druid-page.h \ nautilus-druid.h \ $(NULL) diff --git a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-eazel.c b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-eazel.c new file mode 100644 index 000000000..2d4c035b3 --- /dev/null +++ b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-eazel.c @@ -0,0 +1,610 @@ +/* gnome-druid-page-eazel.c + * Copyright (C) 1999 Red Hat, Inc. + * Copyright (C) 2000 Eazel, Inc. + * + * All rights reserved. + * + * This 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. + * + * This 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 this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/* + @NOTATION@ +*/ + +#include <config.h> + +#include "nautilus-druid-page-eazel.h" + +#include <libgnomeui/gnome-uidefs.h> +#include <libgnomeui/libgnomeui.h> +#include <gdk-pixbuf/gnome-canvas-pixbuf.h> +#include "nautilus-druid.h" +#include <libgnome/gnome-i18n.h> + +#include <libnautilus-extensions/nautilus-file-utilities.h> + +struct _NautilusDruidPageEazelPrivate +{ + GnomeCanvasItem *background_item; + GnomeCanvasItem *background_image_item; + GnomeCanvasItem *topbar_image_item; + int topbar_image_width; + GnomeCanvasItem *topbar_image_stretch_item; + GnomeCanvasItem *title_item; + GnomeCanvasItem *text_item; + GnomeCanvasItem *sidebar_image_item; + GnomeCanvasItem *title_image_item; + GnomeCanvasItem *widget_item; +}; + +static void nautilus_druid_page_eazel_init (NautilusDruidPageEazel *druid_page_eazel); +static void nautilus_druid_page_eazel_class_init (NautilusDruidPageEazelClass *klass); +static void nautilus_druid_page_eazel_destroy (GtkObject *object); +static void nautilus_druid_page_eazel_construct (NautilusDruidPageEazel *druid_page_eazel); +static void nautilus_druid_page_eazel_configure_size(NautilusDruidPageEazel *druid_page_eazel, + gint width, + gint height); +static void nautilus_druid_page_eazel_size_allocate (GtkWidget *widget, + GtkAllocation *allocation); +static void nautilus_druid_page_eazel_size_request (GtkWidget *widget, + GtkRequisition *requisition); +static void nautilus_druid_page_eazel_prepare (NautilusDruidPage *page, + GtkWidget *druid, + gpointer *data); +static NautilusDruidPageClass *parent_class = NULL; + +#define TITLE_X 34.0 +#define TITLE_Y 60.0 +#define CONTENT_PADDING 15.0 +#define DEFAULT_CONTENT_X 34.0 +#define DRUID_PAGE_HEIGHT 365 +#define DRUID_PAGE_WIDTH 516 + + +GtkType +nautilus_druid_page_eazel_get_type (void) +{ + static GtkType druid_page_eazel_type = 0; + + if (!druid_page_eazel_type) + { + static const GtkTypeInfo druid_page_eazel_info = + { + "NautilusDruidPageEazel", + sizeof (NautilusDruidPageEazel), + sizeof (NautilusDruidPageEazelClass), + (GtkClassInitFunc) nautilus_druid_page_eazel_class_init, + (GtkObjectInitFunc) nautilus_druid_page_eazel_init, + /* reserved_1 */ NULL, + /* reserved_2 */ NULL, + (GtkClassInitFunc) NULL + }; + + druid_page_eazel_type = gtk_type_unique (nautilus_druid_page_get_type (), &druid_page_eazel_info); + } + + return druid_page_eazel_type; +} + +static void +nautilus_druid_page_eazel_class_init (NautilusDruidPageEazelClass *klass) +{ + GtkObjectClass *object_class; + GtkWidgetClass *widget_class; + + object_class = (GtkObjectClass*) klass; + object_class->destroy = nautilus_druid_page_eazel_destroy; + widget_class = (GtkWidgetClass*) klass; + widget_class->size_allocate = nautilus_druid_page_eazel_size_allocate; + widget_class->size_request = nautilus_druid_page_eazel_size_request; + parent_class = gtk_type_class (nautilus_druid_page_get_type ()); +} + +static void +nautilus_druid_page_eazel_init (NautilusDruidPageEazel *druid_page_eazel) +{ + druid_page_eazel->_priv = g_new0(NautilusDruidPageEazelPrivate, 1); + + /* Set up the canvas */ + gtk_container_set_border_width (GTK_CONTAINER (druid_page_eazel), 0); + gtk_widget_push_visual (gdk_rgb_get_visual ()); + gtk_widget_push_colormap (gdk_rgb_get_cmap ()); + druid_page_eazel->canvas = gnome_canvas_new_aa (); + gtk_widget_pop_visual (); + gtk_widget_pop_colormap (); + gtk_widget_set_usize (druid_page_eazel->canvas, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); + gtk_widget_show (druid_page_eazel->canvas); + gnome_canvas_set_scroll_region (GNOME_CANVAS (druid_page_eazel->canvas), 0.0, 0.0, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); + gtk_container_add (GTK_CONTAINER (druid_page_eazel), druid_page_eazel->canvas); + +} + +static void +nautilus_druid_page_eazel_destroy(GtkObject *object) +{ + NautilusDruidPageEazel *druid_page_eazel = NAUTILUS_DRUID_PAGE_EAZEL(object); + + druid_page_eazel->canvas = NULL; + druid_page_eazel->widget = NULL; + + g_free (druid_page_eazel->title); + druid_page_eazel->title = NULL; + g_free (druid_page_eazel->text); + druid_page_eazel->text = NULL; + + if (druid_page_eazel->title_image != NULL) + gdk_pixbuf_unref (druid_page_eazel->title_image); + druid_page_eazel->title_image = NULL; + if (druid_page_eazel->sidebar_image != NULL) + gdk_pixbuf_unref (druid_page_eazel->sidebar_image); + druid_page_eazel->sidebar_image = NULL; + + if (druid_page_eazel->widget != NULL) + gtk_widget_unref (druid_page_eazel->widget); + druid_page_eazel->widget = NULL; + + g_free(druid_page_eazel->_priv); + druid_page_eazel->_priv = NULL; + + if(GTK_OBJECT_CLASS(parent_class)->destroy) + (* GTK_OBJECT_CLASS(parent_class)->destroy)(object); +} + +static void +get_content_xy (NautilusDruidPageEazel *druid_page_eazel, + double *content_x, double *content_y) +{ + double title_height; + + if (druid_page_eazel->sidebar_image) { + *content_x = gdk_pixbuf_get_width (druid_page_eazel->sidebar_image); + } else { + *content_x = DEFAULT_CONTENT_X; + } + + if (druid_page_eazel->title_image) { + *content_y = gdk_pixbuf_get_height (druid_page_eazel->title_image) + TITLE_Y + CONTENT_PADDING; + } else { + *content_y = TITLE_Y; + } + + title_height = 0.0; + if (druid_page_eazel->title != NULL + && druid_page_eazel->title[0] != '\0') { + gtk_object_get (GTK_OBJECT (druid_page_eazel->_priv->title_item), + "text_height", &title_height, + NULL); + title_height += CONTENT_PADDING; + } + + if (*content_y < title_height + TITLE_Y) { + *content_y = title_height + TITLE_Y; + } +} + + +static void +nautilus_druid_page_eazel_configure_size (NautilusDruidPageEazel *druid_page_eazel, gint width, gint height) +{ + double content_x; + double content_y; + + g_return_if_fail (druid_page_eazel != NULL); + g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_EAZEL (druid_page_eazel)); + + gnome_canvas_item_set (druid_page_eazel->_priv->background_item, + "x1", 0.0, + "y1", 0.0, + "x2", (gfloat) width, + "y2", (gfloat) height, + NULL); + + gnome_canvas_item_set (druid_page_eazel->_priv->topbar_image_stretch_item, + "width", (double) (width - druid_page_eazel->_priv->topbar_image_width), + NULL); + + get_content_xy (druid_page_eazel, &content_x, &content_y); + + if (druid_page_eazel->_priv->widget_item != NULL) + gnome_canvas_item_set (druid_page_eazel->_priv->widget_item, + "x", content_x, + "y", content_y, + "width", width - content_x, + "height", height - content_y, + NULL); + + gnome_canvas_item_set (druid_page_eazel->_priv->text_item, + "x", content_x, + "y", content_y, + NULL); + + +} + +static void +set_image (GnomeCanvasItem *item, const char *file, + int *width, int *height) +{ + char *fullname; + + if (width != NULL) + *width = 0; + if (height != NULL) + *height = 0; + + fullname = nautilus_pixmap_file (file); + if (fullname != NULL) { + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file (fullname); + if (pixbuf != NULL) { + if (width != NULL) + *width = gdk_pixbuf_get_width (pixbuf); + if (height != NULL) + *height = gdk_pixbuf_get_height (pixbuf); + gnome_canvas_item_set (item, + "pixbuf", pixbuf, + NULL); + gdk_pixbuf_unref (pixbuf); + } + g_free (fullname); + } +} + +static void +nautilus_druid_page_eazel_construct (NautilusDruidPageEazel *druid_page_eazel) +{ + druid_page_eazel->_priv->background_item = + gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_eazel->canvas)), + gnome_canvas_rect_get_type (), + "x1", 0.0, + "y1", 0.0, + "fill_color", "white", + NULL); + + druid_page_eazel->_priv->background_image_item = + gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_eazel->canvas)), + gnome_canvas_pixbuf_get_type (), + "x", 0.0, + "y", 0.0, + "x_in_pixels", TRUE, + "y_in_pixels", TRUE, + NULL); + if (druid_page_eazel->background_image) + gnome_canvas_item_set (druid_page_eazel->_priv->background_image_item, + "pixbuf", druid_page_eazel->background_image, + NULL); + + druid_page_eazel->_priv->sidebar_image_item = + gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_eazel->canvas)), + gnome_canvas_pixbuf_get_type (), + "x", 0.0, + "y", 0.0, + "x_in_pixels", TRUE, + "y_in_pixels", TRUE, + NULL); + if (druid_page_eazel->sidebar_image) + gnome_canvas_item_set (druid_page_eazel->_priv->sidebar_image_item, + "pixbuf", druid_page_eazel->sidebar_image, + NULL); + + druid_page_eazel->_priv->topbar_image_item = + gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_eazel->canvas)), + gnome_canvas_pixbuf_get_type (), + "x", 0.0, + "y", 0.0, + "x_in_pixels", TRUE, + "y_in_pixels", TRUE, + NULL); + set_image (druid_page_eazel->_priv->topbar_image_item, + "druid_header.png", + &druid_page_eazel->_priv->topbar_image_width, + NULL); + + druid_page_eazel->_priv->topbar_image_stretch_item = + gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_eazel->canvas)), + gnome_canvas_pixbuf_get_type (), + "x", (double)druid_page_eazel->_priv->topbar_image_width, + "y", 0.0, + "width", (double)(DRUID_PAGE_WIDTH - druid_page_eazel->_priv->topbar_image_width), + "width_set", TRUE, + "x_in_pixels", TRUE, + "y_in_pixels", TRUE, + NULL); + set_image (druid_page_eazel->_priv->topbar_image_stretch_item, + "druid_header_stretch.png", NULL, NULL); + + druid_page_eazel->_priv->title_image_item = + gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_eazel->canvas)), + gnome_canvas_pixbuf_get_type (), + "x", TITLE_X, + "y", TITLE_Y, + "x_in_pixels", TRUE, + "y_in_pixels", TRUE, + NULL); + if (druid_page_eazel->title_image) + gnome_canvas_item_set (druid_page_eazel->_priv->title_image_item, + "pixbuf", druid_page_eazel->title_image, + NULL); + + druid_page_eazel->_priv->title_item = + gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_eazel->canvas)), + gnome_canvas_text_get_type (), + "x", TITLE_X, + "y", TITLE_Y, + "text", druid_page_eazel->title, + "fill_color", "black", + "fontset", _("-adobe-helvetica-bold-r-normal-*-*-180-*-*-p-*-*-*,*-r-*"), + "anchor", GTK_ANCHOR_NW, + NULL); + + druid_page_eazel->_priv->text_item = + gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_eazel->canvas)), + gnome_canvas_text_get_type (), + "text", druid_page_eazel->text, + "fill_color", "black", + "fontset", _("-adobe-helvetica-bold-r-normal-*-*-120-*-*-p-*-*-*,*-r-*"), + "anchor", GTK_ANCHOR_NW, + NULL); + + nautilus_druid_page_eazel_configure_size (druid_page_eazel, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); + gtk_signal_connect (GTK_OBJECT (druid_page_eazel), + "prepare", + nautilus_druid_page_eazel_prepare, + NULL); +} + +static void +nautilus_druid_page_eazel_prepare (NautilusDruidPage *page, + GtkWidget *druid, + gpointer *data) +{ + switch (NAUTILUS_DRUID_PAGE_EAZEL (page)->position) { + case NAUTILUS_DRUID_START: + nautilus_druid_set_buttons_sensitive (NAUTILUS_DRUID (druid), FALSE, TRUE, TRUE); + nautilus_druid_set_show_finish (NAUTILUS_DRUID (druid), FALSE); + gtk_widget_grab_default (NAUTILUS_DRUID (druid)->next); + break; + case NAUTILUS_DRUID_FINISH: + nautilus_druid_set_buttons_sensitive (NAUTILUS_DRUID (druid), TRUE, FALSE, TRUE); + nautilus_druid_set_show_finish (NAUTILUS_DRUID (druid), TRUE); + gtk_widget_grab_default (NAUTILUS_DRUID (druid)->finish); + break; + case NAUTILUS_DRUID_OTHER: + default: + break; + } +} + + +static void +nautilus_druid_page_eazel_size_allocate(GtkWidget *widget, + GtkAllocation *allocation) +{ + GTK_WIDGET_CLASS (parent_class)->size_allocate (widget, allocation); + gnome_canvas_set_scroll_region (GNOME_CANVAS (NAUTILUS_DRUID_PAGE_EAZEL (widget)->canvas), + 0.0, 0.0, + allocation->width, + allocation->height); + nautilus_druid_page_eazel_configure_size (NAUTILUS_DRUID_PAGE_EAZEL (widget), + allocation->width, + allocation->height); +} + +static void +nautilus_druid_page_eazel_size_request(GtkWidget *widget, + GtkRequisition *requisition) +{ + NautilusDruidPageEazel *druid_page_eazel; + + druid_page_eazel = NAUTILUS_DRUID_PAGE_EAZEL (widget); + + GTK_WIDGET_CLASS (parent_class)->size_request (widget, requisition); + + if (druid_page_eazel->widget) { + GtkRequisition child_requisition; + double x, y; + + g_assert (druid_page_eazel->_priv->widget_item != NULL); + + gtk_object_get (GTK_OBJECT (druid_page_eazel->_priv->widget_item), + "x", &x, + "y", &y, + NULL); + + gtk_widget_get_child_requisition (druid_page_eazel->widget, + &child_requisition); + + if (child_requisition.width + x > requisition->width) { + requisition->width = child_requisition.width + x; + } + if (child_requisition.height + y > requisition->height) { + requisition->height = child_requisition.height + y; + } + + } +} + + +/** + * nautilus_druid_page_eazel_new: + * + * Creates a new NautilusDruidPageEazel widget. + * + * Return value: Pointer to new NautilusDruidPageEazel + **/ +/* Public functions */ +GtkWidget * +nautilus_druid_page_eazel_new (NautilusDruidPosition position) +{ + GtkWidget *retval = GTK_WIDGET (gtk_type_new (nautilus_druid_page_eazel_get_type ())); + + NAUTILUS_DRUID_PAGE_EAZEL (retval)->position = position; + NAUTILUS_DRUID_PAGE_EAZEL (retval)->title = g_strdup (""); + NAUTILUS_DRUID_PAGE_EAZEL (retval)->text = g_strdup (""); + NAUTILUS_DRUID_PAGE_EAZEL (retval)->title_image = NULL; + NAUTILUS_DRUID_PAGE_EAZEL (retval)->sidebar_image = NULL; + NAUTILUS_DRUID_PAGE_EAZEL (retval)->background_image = NULL; + nautilus_druid_page_eazel_construct (NAUTILUS_DRUID_PAGE_EAZEL (retval)); + return retval; +} +/** + * nautilus_druid_page_eazel_new_with_vals: + * @title: The title. + * @text: The introduction text. + * @logo: The logo in the upper right corner. + * @watermark: The watermark on the left. + * + * This will create a new GNOME Druid Eazel page, with the values + * given. It is acceptable for any of them to be %NULL. + * + * Return value: GtkWidget pointer to new NautilusDruidPageEazel. + **/ +GtkWidget * +nautilus_druid_page_eazel_new_with_vals (NautilusDruidPosition position, + const gchar *title, + const gchar* text, + GdkPixbuf *title_image, + GdkPixbuf *sidebar_image, + GdkPixbuf *background_image) +{ + GtkWidget *retval = GTK_WIDGET (gtk_type_new (nautilus_druid_page_eazel_get_type ())); + + NAUTILUS_DRUID_PAGE_EAZEL (retval)->position = position; + NAUTILUS_DRUID_PAGE_EAZEL (retval)->title = g_strdup (title ? title : ""); + NAUTILUS_DRUID_PAGE_EAZEL (retval)->text = g_strdup (text ? text : ""); + + if (title_image) + gdk_pixbuf_ref (title_image); + NAUTILUS_DRUID_PAGE_EAZEL (retval)->title_image = title_image; + + if (sidebar_image) + gdk_pixbuf_ref (sidebar_image); + NAUTILUS_DRUID_PAGE_EAZEL (retval)->sidebar_image = sidebar_image; + + if (background_image) + gdk_pixbuf_ref (background_image); + NAUTILUS_DRUID_PAGE_EAZEL (retval)->background_image = background_image; + + nautilus_druid_page_eazel_construct (NAUTILUS_DRUID_PAGE_EAZEL (retval)); + return retval; +} + +void +nautilus_druid_page_eazel_set_text (NautilusDruidPageEazel *druid_page_eazel, + const gchar *text) +{ + g_return_if_fail (druid_page_eazel != NULL); + g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_EAZEL (druid_page_eazel)); + + g_free (druid_page_eazel->text); + druid_page_eazel->text = g_strdup (text ? text : ""); + gnome_canvas_item_set (druid_page_eazel->_priv->text_item, + "text", druid_page_eazel->text, + NULL); +} +void +nautilus_druid_page_eazel_set_title (NautilusDruidPageEazel *druid_page_eazel, + const gchar *title) +{ + g_return_if_fail (druid_page_eazel != NULL); + g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_EAZEL (druid_page_eazel)); + + g_free (druid_page_eazel->title); + druid_page_eazel->title = g_strdup (title ? title : ""); + gnome_canvas_item_set (druid_page_eazel->_priv->title_item, + "text", druid_page_eazel->title, + NULL); +} +void +nautilus_druid_page_eazel_set_title_image (NautilusDruidPageEazel *druid_page_eazel, + GdkPixbuf *title_image) +{ + g_return_if_fail (druid_page_eazel != NULL); + g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_EAZEL (druid_page_eazel)); + + if (druid_page_eazel->title_image) + gdk_pixbuf_unref (druid_page_eazel->title_image); + + druid_page_eazel->title_image = title_image; + if (title_image != NULL) + gdk_pixbuf_ref (title_image); + gnome_canvas_item_set (druid_page_eazel->_priv->title_image_item, + "pixbuf", druid_page_eazel->title_image, NULL); +} + +void +nautilus_druid_page_eazel_set_sidebar_image (NautilusDruidPageEazel *druid_page_eazel, + GdkPixbuf *sidebar_image) +{ + g_return_if_fail (druid_page_eazel != NULL); + g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_EAZEL (druid_page_eazel)); + + if (druid_page_eazel->sidebar_image) + gdk_pixbuf_unref (druid_page_eazel->sidebar_image); + + druid_page_eazel->sidebar_image = sidebar_image; + if (sidebar_image != NULL) + gdk_pixbuf_ref (sidebar_image); + gnome_canvas_item_set (druid_page_eazel->_priv->sidebar_image_item, + "pixbuf", druid_page_eazel->sidebar_image, NULL); +} + +void +nautilus_druid_page_eazel_set_background_image (NautilusDruidPageEazel *druid_page_eazel, + GdkPixbuf *background_image) +{ + g_return_if_fail (druid_page_eazel != NULL); + g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_EAZEL (druid_page_eazel)); + + if (druid_page_eazel->background_image) + gdk_pixbuf_unref (druid_page_eazel->background_image); + + druid_page_eazel->background_image = background_image; + if (background_image != NULL) + gdk_pixbuf_ref (background_image); + gnome_canvas_item_set (druid_page_eazel->_priv->background_image_item, + "pixbuf", druid_page_eazel->background_image, NULL); +} + +void +nautilus_druid_page_eazel_put_widget(NautilusDruidPageEazel *druid_page_eazel, GtkWidget *widget) +{ + double content_x; + double content_y; + + g_return_if_fail (druid_page_eazel != NULL); + g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_EAZEL (druid_page_eazel)); + + get_content_xy (druid_page_eazel, &content_x, &content_y); + + if (druid_page_eazel->_priv->widget_item != NULL) + gtk_object_destroy (GTK_OBJECT (druid_page_eazel->_priv->widget_item)); + if (druid_page_eazel->widget != NULL) + gtk_widget_unref (druid_page_eazel->widget); + druid_page_eazel->widget = widget; + if (widget != NULL) + gtk_widget_ref (widget); + + druid_page_eazel->_priv->widget_item = + gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_eazel->canvas)), + gnome_canvas_widget_get_type (), + "x", content_x, + "y", content_y, + "width", DRUID_PAGE_WIDTH - content_x, + "height", DRUID_PAGE_HEIGHT - content_y, + "widget", widget, + NULL); + + gtk_widget_queue_resize (GTK_WIDGET (druid_page_eazel)); +} diff --git a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-eazel.h b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-eazel.h new file mode 100644 index 000000000..020b9acd0 --- /dev/null +++ b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-eazel.h @@ -0,0 +1,99 @@ +/* nautilus-druid-page-eazel.h + * Copyright (C) 1999 Red Hat, Inc. + * + * All rights reserved. + * + * This 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. + * + * This 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 this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/* + @NOTATION@ +*/ +#ifndef NAUTILUS_DRUID_PAGE_EAZEL_H +#define NAUTILUS_DRUID_PAGE_EAZEL_H + +#include <gtk/gtk.h> +#include <libgnomeui/gnome-canvas.h> +#include <widgets/nautilus-druid/nautilus-druid-page.h> +#include <gdk-pixbuf/gdk-pixbuf.h> + +BEGIN_GNOME_DECLS + +#define NAUTILUS_TYPE_DRUID_PAGE_EAZEL (nautilus_druid_page_eazel_get_type ()) +#define NAUTILUS_DRUID_PAGE_EAZEL(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_DRUID_PAGE_EAZEL, NautilusDruidPageEazel)) +#define NAUTILUS_DRUID_PAGE_EAZEL_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_DRUID_PAGE_EAZEL, NautilusDruidPageEazelClass)) +#define NAUTILUS_IS_DRUID_PAGE_EAZEL(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_DRUID_PAGE_EAZEL)) +#define NAUTILUS_IS_DRUID_PAGE_EAZEL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_DRUID_PAGE_EAZEL)) + +typedef enum { + /* update structure when adding enums */ + NAUTILUS_DRUID_START, + NAUTILUS_DRUID_FINISH, + NAUTILUS_DRUID_OTHER +} NautilusDruidPosition; + + +typedef struct _NautilusDruidPageEazel NautilusDruidPageEazel; +typedef struct _NautilusDruidPageEazelPrivate NautilusDruidPageEazelPrivate; +typedef struct _NautilusDruidPageEazelClass NautilusDruidPageEazelClass; + +struct _NautilusDruidPageEazel +{ + NautilusDruidPage parent; + + GtkWidget *canvas; + char *title; + char *text; + GdkPixbuf *title_image; + GdkPixbuf *sidebar_image; + GdkPixbuf *background_image; + + GtkWidget *widget; + + NautilusDruidPosition position : 2; + + /*< private >*/ + NautilusDruidPageEazelPrivate *_priv; +}; + +struct _NautilusDruidPageEazelClass +{ + NautilusDruidPageClass parent_class; +}; + +GtkType nautilus_druid_page_eazel_get_type (void); +GtkWidget *nautilus_druid_page_eazel_new (NautilusDruidPosition position); +GtkWidget *nautilus_druid_page_eazel_new_with_vals (NautilusDruidPosition position, + const gchar *title, + const gchar *text, + GdkPixbuf *title_image, + GdkPixbuf *sidebar_image, + GdkPixbuf *background_image); +void nautilus_druid_page_eazel_put_widget (NautilusDruidPageEazel *druid_page_eazel, + GtkWidget *widget); +void nautilus_druid_page_eazel_set_text (NautilusDruidPageEazel *druid_page_eazel, + const gchar *text); +void nautilus_druid_page_eazel_set_title (NautilusDruidPageEazel *druid_page_eazel, + const gchar *title); +void nautilus_druid_page_eazel_set_title_image (NautilusDruidPageEazel *druid_page_eazel, + GdkPixbuf *title_image); +void nautilus_druid_page_eazel_set_sidebar_image (NautilusDruidPageEazel *druid_page_eazel, + GdkPixbuf *sidebar_image); +void nautilus_druid_page_eazel_set_background_image(NautilusDruidPageEazel *druid_page_eazel, + GdkPixbuf *background_image); + +END_GNOME_DECLS + +#endif /* NAUTILUS_DRUID_PAGE_EAZEL_H */ 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 deleted file mode 100644 index 8375700c6..000000000 --- a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.c +++ /dev/null @@ -1,531 +0,0 @@ -/* gnome-druid-page-finish.c - * Copyright (C) 1999 Red Hat, Inc. - * - * - * This 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. - * - * This 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 this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -/* - @NOTATION@ -*/ - -#include <config.h> - -#include "nautilus-druid-page-finish.h" - -#include <libgnomeui/gnome-uidefs.h> -#include <libgnomeui/libgnomeui.h> -#include <gdk-pixbuf/gnome-canvas-pixbuf.h> -#include "nautilus-druid.h" -#include <libgnome/gnome-i18n.h> - -struct _NautilusDruidPageFinishPrivate -{ - GtkWidget *canvas; - GnomeCanvasItem *background_item; - GnomeCanvasItem *textbox_item; - GnomeCanvasItem *text_item; - GnomeCanvasItem *logo_item; - GnomeCanvasItem *logoframe_item; - GnomeCanvasItem *watermark_item; - GnomeCanvasItem *title_item; -}; - -static void nautilus_druid_page_finish_init (NautilusDruidPageFinish *druid_page_finish); -static void nautilus_druid_page_finish_class_init (NautilusDruidPageFinishClass *klass); -static void nautilus_druid_page_finish_destroy (GtkObject *object); -static void nautilus_druid_page_finish_construct (NautilusDruidPageFinish *druid_page_finish); -static void nautilus_druid_page_finish_configure_size(NautilusDruidPageFinish *druid_page_finish, - gint width, - gint height); -static void nautilus_druid_page_finish_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void nautilus_druid_page_finish_realize (GtkWidget *widget); -static void nautilus_druid_page_finish_prepare (NautilusDruidPage *page, - GtkWidget *druid, - gpointer *data); -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 - -GtkType -nautilus_druid_page_finish_get_type (void) -{ - static GtkType druid_page_finish_type = 0; - - if (!druid_page_finish_type) - { - static const GtkTypeInfo druid_page_finish_info = - { - "NautilusDruidPageFinish", - sizeof (NautilusDruidPageFinish), - sizeof (NautilusDruidPageFinishClass), - (GtkClassInitFunc) nautilus_druid_page_finish_class_init, - (GtkObjectInitFunc) nautilus_druid_page_finish_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - druid_page_finish_type = gtk_type_unique (nautilus_druid_page_get_type (), &druid_page_finish_info); - } - - return druid_page_finish_type; -} - -static void -nautilus_druid_page_finish_class_init (NautilusDruidPageFinishClass *klass) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - - object_class = (GtkObjectClass*) klass; - object_class->destroy = nautilus_druid_page_finish_destroy; - widget_class = (GtkWidgetClass*) klass; - widget_class->size_allocate = nautilus_druid_page_finish_size_allocate; - widget_class->realize = nautilus_druid_page_finish_realize; - parent_class = gtk_type_class (nautilus_druid_page_get_type ()); -} - -static void -nautilus_druid_page_finish_init (NautilusDruidPageFinish *druid_page_finish) -{ - druid_page_finish->_priv = g_new0(NautilusDruidPageFinishPrivate, 1); - - /* initialize the color values */ - druid_page_finish->background_color.red = 6400; /* midnight blue */ - druid_page_finish->background_color.green = 6400; - druid_page_finish->background_color.blue = 28672; - druid_page_finish->textbox_color.red = 65280; /* white */ - druid_page_finish->textbox_color.green = 65280; - druid_page_finish->textbox_color.blue = 65280; - druid_page_finish->logo_background_color.red = 65280; /* white */ - druid_page_finish->logo_background_color.green = 65280; - druid_page_finish->logo_background_color.blue = 65280; - druid_page_finish->title_color.red = 65280; /* white */ - druid_page_finish->title_color.green = 65280; - druid_page_finish->title_color.blue = 65280; - druid_page_finish->text_color.red = 0; /* black */ - druid_page_finish->text_color.green = 0; - druid_page_finish->text_color.blue = 0; - - /* Set up the canvas */ - gtk_container_set_border_width (GTK_CONTAINER (druid_page_finish), 0); - 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); - gtk_container_add (GTK_CONTAINER (druid_page_finish), druid_page_finish->_priv->canvas); -} - -static void -nautilus_druid_page_finish_destroy(GtkObject *object) -{ - NautilusDruidPageFinish *druid_page_finish = NAUTILUS_DRUID_PAGE_FINISH(object); - - g_free(druid_page_finish->_priv); - druid_page_finish->_priv = NULL; - - if (GTK_OBJECT_CLASS(parent_class)->destroy) - (* GTK_OBJECT_CLASS(parent_class)->destroy)(object); -} - - -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_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); - watermark_ypos = (gfloat) height - watermark_height; - if (watermark_width < 1) - watermark_width = 1.0; - if (watermark_height < 1) - watermark_height = 1.0; - } - - gnome_canvas_item_set (druid_page_finish->_priv->background_item, - "x1", 0.0, - "y1", 0.0, - "x2", (gfloat) width, - "y2", (gfloat) height, - "width_units", 1.0, NULL); - gnome_canvas_item_set (druid_page_finish->_priv->textbox_item, - "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 - cur_logo_width -GNOME_PAD, - "y1", (gfloat) GNOME_PAD, - "x2", (gfloat) width - GNOME_PAD, - "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 - cur_logo_width, - "y", (gfloat) GNOME_PAD, - "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, - "width", watermark_width, - "height", watermark_height, - NULL); - gnome_canvas_item_set (druid_page_finish->_priv->title_item, - "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_HEIGHT + GNOME_PAD * 2.0 + (height - (cur_logo_height + GNOME_PAD * 2.0))/ 2.0, - "anchor", GTK_ANCHOR_CENTER, - NULL); -} - -static void -nautilus_druid_page_finish_construct (NautilusDruidPageFinish *druid_page_finish) -{ - /* set up the rest of the page */ - druid_page_finish->_priv->background_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_finish->_priv->canvas)), - gnome_canvas_rect_get_type (), NULL); - druid_page_finish->_priv->textbox_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_finish->_priv->canvas)), - gnome_canvas_rect_get_type (), NULL); - druid_page_finish->_priv->logoframe_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_finish->_priv->canvas)), - gnome_canvas_rect_get_type (), NULL); - druid_page_finish->_priv->logo_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_finish->_priv->canvas)), - gnome_canvas_pixbuf_get_type (), - "x_in_pixels", TRUE, "y_in_pixels", TRUE, - NULL); - - if (druid_page_finish->logo_image != NULL) - gnome_canvas_item_set (druid_page_finish->_priv->logo_item, - "pixbuf", druid_page_finish->logo_image, NULL); - - druid_page_finish->_priv->watermark_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_finish->_priv->canvas)), - gnome_canvas_pixbuf_get_type (), - "x_in_pixels", TRUE, "y_in_pixels", TRUE, - NULL); - - if (druid_page_finish->watermark_image != NULL) - gnome_canvas_item_set (druid_page_finish->_priv->watermark_item, - "pixbuf", druid_page_finish->watermark_image, NULL); - - druid_page_finish->_priv->title_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_finish->_priv->canvas)), - gnome_canvas_text_get_type (), - "text", druid_page_finish->title, - "font", _("-adobe-helvetica-bold-r-normal-*-*-180-*-*-p-*-*-*"), - NULL); - druid_page_finish->_priv->text_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_finish->_priv->canvas)), - gnome_canvas_text_get_type (), - "text", druid_page_finish->text, - "justification", GTK_JUSTIFY_LEFT, - "font", _("-adobe-helvetica-medium-r-normal-*-*-120-*-*-p-*-*-*"), - NULL); - - nautilus_druid_page_finish_configure_size (druid_page_finish, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); - gtk_signal_connect (GTK_OBJECT (druid_page_finish), - "prepare", - nautilus_druid_page_finish_prepare, - NULL); -} -static void -nautilus_druid_page_finish_prepare (NautilusDruidPage *page, - GtkWidget *druid, - gpointer *data) -{ - nautilus_druid_set_buttons_sensitive (NAUTILUS_DRUID (druid), TRUE, FALSE, TRUE); - nautilus_druid_set_show_finish (NAUTILUS_DRUID (druid), TRUE); - gtk_widget_grab_default (NAUTILUS_DRUID (druid)->finish); -} - - -static void -nautilus_druid_page_finish_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GTK_WIDGET_CLASS (parent_class)->size_allocate (widget, allocation); - gnome_canvas_set_scroll_region (GNOME_CANVAS (NAUTILUS_DRUID_PAGE_FINISH (widget)->_priv->canvas), - 0.0, 0.0, - allocation->width, - allocation->height); - nautilus_druid_page_finish_configure_size (NAUTILUS_DRUID_PAGE_FINISH (widget), - allocation->width, - allocation->height); -} -static void -nautilus_druid_page_finish_realize (GtkWidget *widget) -{ - NautilusDruidPageFinish *druid_page_finish; - GdkColormap *cmap = gdk_imlib_get_colormap (); - - druid_page_finish = NAUTILUS_DRUID_PAGE_FINISH (widget); - gdk_colormap_alloc_color (cmap, &druid_page_finish->background_color, FALSE, TRUE); - gdk_colormap_alloc_color (cmap, &druid_page_finish->textbox_color, FALSE, TRUE); - gdk_colormap_alloc_color (cmap, &druid_page_finish->logo_background_color, FALSE, TRUE); - gdk_colormap_alloc_color (cmap, &druid_page_finish->title_color, FALSE, TRUE); - gdk_colormap_alloc_color (cmap, &druid_page_finish->text_color, FALSE, TRUE); - - gnome_canvas_item_set (druid_page_finish->_priv->background_item, - "fill_color_gdk", &(druid_page_finish->background_color), - NULL); - gnome_canvas_item_set (druid_page_finish->_priv->textbox_item, - "fill_color_gdk", &(druid_page_finish->textbox_color), - "outline_color_gdk", &(druid_page_finish->background_color), - NULL); - gnome_canvas_item_set (druid_page_finish->_priv->logoframe_item, - "fill_color_gdk", &druid_page_finish->logo_background_color, - NULL); - gnome_canvas_item_set (druid_page_finish->_priv->title_item, - "fill_color_gdk", &druid_page_finish->title_color, - NULL); - gnome_canvas_item_set (druid_page_finish->_priv->text_item, - "fill_color_gdk", &druid_page_finish->text_color, - NULL); - GTK_WIDGET_CLASS (parent_class)->realize (widget); -} - -/* Public functions */ -GtkWidget * -nautilus_druid_page_finish_new (void) -{ - GtkWidget *retval = GTK_WIDGET (gtk_type_new (nautilus_druid_page_finish_get_type ())); - NAUTILUS_DRUID_PAGE_FINISH (retval)->title = g_strdup (""); - NAUTILUS_DRUID_PAGE_FINISH (retval)->text = g_strdup (""); - NAUTILUS_DRUID_PAGE_FINISH (retval)->logo_image = NULL; - NAUTILUS_DRUID_PAGE_FINISH (retval)->watermark_image = NULL; - nautilus_druid_page_finish_construct (NAUTILUS_DRUID_PAGE_FINISH (retval)); - return retval; -} -GtkWidget * -nautilus_druid_page_finish_new_with_vals (const gchar *title, const gchar* text, GdkPixbuf *logo, GdkPixbuf *watermark) -{ - GtkWidget *retval = GTK_WIDGET (gtk_type_new (nautilus_druid_page_finish_get_type ())); - NAUTILUS_DRUID_PAGE_FINISH (retval)->title = g_strdup (title); - NAUTILUS_DRUID_PAGE_FINISH (retval)->text = g_strdup (text); - NAUTILUS_DRUID_PAGE_FINISH (retval)->logo_image = logo; - NAUTILUS_DRUID_PAGE_FINISH (retval)->watermark_image = watermark; - nautilus_druid_page_finish_construct (NAUTILUS_DRUID_PAGE_FINISH (retval)); - return retval; -} -void -nautilus_druid_page_finish_set_bg_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color) -{ - g_return_if_fail (druid_page_finish != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_FINISH (druid_page_finish)); - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - - gdk_colormap_free_colors (cmap, &druid_page_finish->background_color, 1); - } - druid_page_finish->background_color.red = color->red; - druid_page_finish->background_color.green = color->green; - druid_page_finish->background_color.blue = color->blue; - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - gdk_colormap_alloc_color (cmap, &druid_page_finish->background_color, FALSE, TRUE); - gnome_canvas_item_set (druid_page_finish->_priv->textbox_item, - "outline_color_gdk", &druid_page_finish->background_color, - NULL); - gnome_canvas_item_set (druid_page_finish->_priv->background_item, - "fill_color_gdk", &druid_page_finish->background_color, - NULL); - } -} -void -nautilus_druid_page_finish_set_textbox_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color) -{ - g_return_if_fail (druid_page_finish != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_FINISH (druid_page_finish)); - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - - gdk_colormap_free_colors (cmap, &druid_page_finish->textbox_color, 1); - } - druid_page_finish->textbox_color.red = color->red; - druid_page_finish->textbox_color.green = color->green; - druid_page_finish->textbox_color.blue = color->blue; - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - gdk_colormap_alloc_color (cmap, &druid_page_finish->textbox_color, FALSE, TRUE); - gnome_canvas_item_set (druid_page_finish->_priv->textbox_item, - "fill_color_gdk", &druid_page_finish->textbox_color, - NULL); - } -} -void -nautilus_druid_page_finish_set_logo_bg_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color) -{ - g_return_if_fail (druid_page_finish != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_FINISH (druid_page_finish)); - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - - gdk_colormap_free_colors (cmap, &druid_page_finish->logo_background_color, 1); - } - druid_page_finish->logo_background_color.red = color->red; - druid_page_finish->logo_background_color.green = color->green; - druid_page_finish->logo_background_color.blue = color->blue; - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - gdk_colormap_alloc_color (cmap, &druid_page_finish->logo_background_color, FALSE, TRUE); - gnome_canvas_item_set (druid_page_finish->_priv->logoframe_item, - "fill_color_gdk", &druid_page_finish->logo_background_color, - NULL); - } -} -void -nautilus_druid_page_finish_set_title_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color) -{ - g_return_if_fail (druid_page_finish != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_FINISH (druid_page_finish)); - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - - gdk_colormap_free_colors (cmap, &druid_page_finish->title_color, 1); - } - druid_page_finish->title_color.red = color->red; - druid_page_finish->title_color.green = color->green; - druid_page_finish->title_color.blue = color->blue; - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - gdk_colormap_alloc_color (cmap, &druid_page_finish->title_color, FALSE, TRUE); - gnome_canvas_item_set (druid_page_finish->_priv->title_item, - "fill_color_gdk", &druid_page_finish->title_color, - NULL); - } - -} -void -nautilus_druid_page_finish_set_text_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color) -{ - g_return_if_fail (druid_page_finish != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_FINISH (druid_page_finish)); - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - - gdk_colormap_free_colors (cmap, &druid_page_finish->text_color, 1); - } - druid_page_finish->text_color.red = color->red; - druid_page_finish->text_color.green = color->green; - druid_page_finish->text_color.blue = color->blue; - - if (GTK_WIDGET_REALIZED (druid_page_finish)) { - GdkColormap *cmap = gdk_imlib_get_colormap (); - gdk_colormap_alloc_color (cmap, &druid_page_finish->text_color, FALSE, TRUE); - gnome_canvas_item_set (druid_page_finish->_priv->text_item, - "fill_color_gdk", &druid_page_finish->text_color, - NULL); - } - -} -void -nautilus_druid_page_finish_set_text (NautilusDruidPageFinish *druid_page_finish, - const gchar *text) -{ - g_return_if_fail (druid_page_finish != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_FINISH (druid_page_finish)); - - g_free (druid_page_finish->text); - druid_page_finish->text = g_strdup (text); - gnome_canvas_item_set (druid_page_finish->_priv->text_item, - "text", druid_page_finish->text, - NULL); -} -void -nautilus_druid_page_finish_set_title (NautilusDruidPageFinish *druid_page_finish, - const gchar *title) -{ - g_return_if_fail (druid_page_finish != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_FINISH (druid_page_finish)); - - g_free (druid_page_finish->title); - druid_page_finish->title = g_strdup (title); - gnome_canvas_item_set (druid_page_finish->_priv->title_item, - "text", druid_page_finish->title, - NULL); -} -void -nautilus_druid_page_finish_set_logo (NautilusDruidPageFinish *druid_page_finish, - GdkPixbuf *logo_image) -{ - g_return_if_fail (druid_page_finish != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_FINISH (druid_page_finish)); - - if (druid_page_finish->logo_image) - gdk_pixbuf_unref (druid_page_finish->logo_image); - - druid_page_finish->logo_image = logo_image; - 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, - GdkPixbuf *watermark) -{ - g_return_if_fail (druid_page_finish != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_FINISH (druid_page_finish)); - - if (druid_page_finish->watermark_image) - gdk_pixbuf_unref (druid_page_finish->watermark_image); - - druid_page_finish->watermark_image = watermark; - gdk_pixbuf_ref (watermark); - gnome_canvas_item_set (druid_page_finish->_priv->watermark_item, - "pixbuf", druid_page_finish->watermark_image, NULL); -} diff --git a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.h b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.h deleted file mode 100644 index 971cd7f64..000000000 --- a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-finish.h +++ /dev/null @@ -1,95 +0,0 @@ -/* nautilus-druid-page-finish.h - * Copyright (C) 1999 Red Hat, Inc. - * All rights reserved. - * - * This 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. - * - * This 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 this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -/* - @NOTATION@ -*/ -#ifndef __NAUTILUS_DRUID_PAGE_FINISH_H__ -#define __NAUTILUS_DRUID_PAGE_FINISH_H__ - -#include <gtk/gtk.h> -#include <libgnomeui/gnome-canvas.h> -#include <widgets/nautilus-druid/nautilus-druid-page.h> -#include <gdk-pixbuf/gdk-pixbuf.h> - -BEGIN_GNOME_DECLS - -#define NAUTILUS_TYPE_DRUID_PAGE_FINISH (nautilus_druid_page_finish_get_type ()) -#define NAUTILUS_DRUID_PAGE_FINISH(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_DRUID_PAGE_FINISH, NautilusDruidPageFinish)) -#define NAUTILUS_DRUID_PAGE_FINISH_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_DRUID_PAGE_FINISH, NautilusDruidPageFinishClass)) -#define NAUTILUS_IS_DRUID_PAGE_FINISH(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_DRUID_PAGE_FINISH)) -#define NAUTILUS_IS_DRUID_PAGE_FINISH_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_DRUID_PAGE_FINISH)) - - -typedef struct _NautilusDruidPageFinish NautilusDruidPageFinish; -typedef struct _NautilusDruidPageFinishPrivate NautilusDruidPageFinishPrivate; -typedef struct _NautilusDruidPageFinishClass NautilusDruidPageFinishClass; - -struct _NautilusDruidPageFinish -{ - NautilusDruidPage parent; - - GdkColor background_color; - GdkColor textbox_color; - GdkColor logo_background_color; - GdkColor title_color; - GdkColor text_color; - - gchar *title; - gchar *text; - GdkPixbuf *logo_image; - GdkPixbuf *watermark_image; - - /*< private >*/ - NautilusDruidPageFinishPrivate *_priv; -}; -struct _NautilusDruidPageFinishClass -{ - NautilusDruidPageClass parent_class; -}; - - -GtkType nautilus_druid_page_finish_get_type (void); -GtkWidget *nautilus_druid_page_finish_new (void); -GtkWidget *nautilus_druid_page_finish_new_with_vals(const gchar *title, - const gchar* text, - GdkPixbuf *logo, - GdkPixbuf *watermark); -void nautilus_druid_page_finish_set_bg_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color); -void nautilus_druid_page_finish_set_textbox_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color); -void nautilus_druid_page_finish_set_logo_bg_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color); -void nautilus_druid_page_finish_set_title_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color); -void nautilus_druid_page_finish_set_text_color (NautilusDruidPageFinish *druid_page_finish, - GdkColor *color); -void nautilus_druid_page_finish_set_text (NautilusDruidPageFinish *druid_page_finish, - const gchar *text); -void nautilus_druid_page_finish_set_title (NautilusDruidPageFinish *druid_page_finish, - const gchar *title); -void nautilus_druid_page_finish_set_logo (NautilusDruidPageFinish *druid_page_finish, - GdkPixbuf *logo_image); -void nautilus_druid_page_finish_set_watermark (NautilusDruidPageFinish *druid_page_finish, - GdkPixbuf *watermark); - -END_GNOME_DECLS - -#endif /* __NAUTILUS_DRUID_PAGE_FINISH_H__ */ 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 deleted file mode 100644 index 2b21312ad..000000000 --- a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.c +++ /dev/null @@ -1,544 +0,0 @@ -/* gnome-druid-page-start.c - * Copyright (C) 1999 Red Hat, Inc. - * All rights reserved. - * - * This 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. - * - * This 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 this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -/* - @NOTATION@ -*/ - -#include <config.h> - -#include "nautilus-druid-page-start.h" - -#include <libgnomeui/gnome-uidefs.h> -#include <gdk-pixbuf/gnome-canvas-pixbuf.h> -#include <libgnomeui/libgnomeui.h> -#include "nautilus-druid.h" -#include <libgnome/gnome-i18n.h> - -struct _NautilusDruidPageStartPrivate -{ - GtkWidget *canvas; - GnomeCanvasItem *background_item; - GnomeCanvasItem *textbox_item; - GnomeCanvasItem *text_item; - GnomeCanvasItem *logo_item; - GnomeCanvasItem *logoframe_item; - GnomeCanvasItem *watermark_item; - GnomeCanvasItem *title_item; -}; - -static void nautilus_druid_page_start_init (NautilusDruidPageStart *druid_page_start); -static void nautilus_druid_page_start_class_init (NautilusDruidPageStartClass *klass); -static void nautilus_druid_page_start_destroy (GtkObject *object); -static void nautilus_druid_page_start_construct (NautilusDruidPageStart *druid_page_start); -static void nautilus_druid_page_start_configure_size(NautilusDruidPageStart *druid_page_start, - gint width, - gint height); -static void nautilus_druid_page_start_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void nautilus_druid_page_start_prepare (NautilusDruidPage *page, - GtkWidget *druid, - gpointer *data); -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 -#define GDK_COLOR_TO_RGBA(color) GNOME_CANVAS_COLOR (color.red/256, color.green/256, color.blue/256) - - -GtkType -nautilus_druid_page_start_get_type (void) -{ - static GtkType druid_page_start_type = 0; - - if (!druid_page_start_type) - { - static const GtkTypeInfo druid_page_start_info = - { - "NautilusDruidPageStart", - sizeof (NautilusDruidPageStart), - sizeof (NautilusDruidPageStartClass), - (GtkClassInitFunc) nautilus_druid_page_start_class_init, - (GtkObjectInitFunc) nautilus_druid_page_start_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - druid_page_start_type = gtk_type_unique (nautilus_druid_page_get_type (), &druid_page_start_info); - } - - return druid_page_start_type; -} - -static void -nautilus_druid_page_start_class_init (NautilusDruidPageStartClass *klass) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - - object_class = (GtkObjectClass*) klass; - object_class->destroy = nautilus_druid_page_start_destroy; - widget_class = (GtkWidgetClass*) klass; - widget_class->size_allocate = nautilus_druid_page_start_size_allocate; - parent_class = gtk_type_class (nautilus_druid_page_get_type ()); -} - -static void -nautilus_druid_page_start_init (NautilusDruidPageStart *druid_page_start) -{ - druid_page_start->_priv = g_new0(NautilusDruidPageStartPrivate, 1); - - /* initialize the color values */ - druid_page_start->background_color.red = 6400; /* midnight blue */ - druid_page_start->background_color.green = 6400; - druid_page_start->background_color.blue = 28672; - druid_page_start->textbox_color.red = 65280; /* white */ - druid_page_start->textbox_color.green = 65280; - druid_page_start->textbox_color.blue = 65280; - druid_page_start->logo_background_color.red = 65280; /* white */ - druid_page_start->logo_background_color.green = 65280; - druid_page_start->logo_background_color.blue = 65280; - druid_page_start->title_color.red = 65280; /* white */ - druid_page_start->title_color.green = 65280; - druid_page_start->title_color.blue = 65280; - druid_page_start->text_color.red = 0; /* black */ - druid_page_start->text_color.green = 0; - druid_page_start->text_color.blue = 0; - - /* Set up the canvas */ - gtk_container_set_border_width (GTK_CONTAINER (druid_page_start), 0); - 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); - gtk_container_add (GTK_CONTAINER (druid_page_start), druid_page_start->_priv->canvas); - -} - -static void -nautilus_druid_page_start_destroy(GtkObject *object) -{ - NautilusDruidPageStart *druid_page_start = NAUTILUS_DRUID_PAGE_START(object); - - g_free(druid_page_start->_priv); - druid_page_start->_priv = NULL; - - if(GTK_OBJECT_CLASS(parent_class)->destroy) - (* GTK_OBJECT_CLASS(parent_class)->destroy)(object); -} - -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_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); - watermark_ypos = (gfloat) height - watermark_height; - if (watermark_width < 1) - watermark_width = 1.0; - if (watermark_height < 1) - watermark_height = 1.0; - } - - gnome_canvas_item_set (druid_page_start->_priv->background_item, - "x1", 0.0, - "y1", 0.0, - "x2", (gfloat) width, - "y2", (gfloat) height, - "width_units", 1.0, NULL); - gnome_canvas_item_set (druid_page_start->_priv->textbox_item, - "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_start->_priv->logoframe_item, - "x1", (gfloat) width - cur_logo_width -GNOME_PAD, - "y1", (gfloat) GNOME_PAD, - "x2", (gfloat) width - GNOME_PAD, - "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 - cur_logo_width, - "y", (gfloat) GNOME_PAD, - "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, - "width", watermark_width, - "height", watermark_height, - NULL); - gnome_canvas_item_set (druid_page_start->_priv->title_item, - "x", 15.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_HEIGHT + GNOME_PAD * 2.0 + (height - (cur_logo_height + GNOME_PAD * 2.0))/ 2.0, - "anchor", GTK_ANCHOR_CENTER, - NULL); -} - -static void -nautilus_druid_page_start_construct (NautilusDruidPageStart *druid_page_start) -{ - guint32 fill_color, outline_color; - - /* set up the rest of the page */ - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->background_color); - druid_page_start->_priv->background_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_start->_priv->canvas)), - gnome_canvas_rect_get_type (), - "fill_color_rgba", fill_color, - NULL); - - outline_color = fill_color; - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->textbox_color); - druid_page_start->_priv->textbox_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_start->_priv->canvas)), - gnome_canvas_rect_get_type (), - "fill_color_rgba", fill_color, - "outline_color_rgba", outline_color, - NULL); - - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->logo_background_color); - druid_page_start->_priv->logoframe_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_start->_priv->canvas)), - gnome_canvas_rect_get_type (), - "fill_color_rgba", fill_color, - NULL); - - druid_page_start->_priv->logo_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_start->_priv->canvas)), - gnome_canvas_pixbuf_get_type (), - "x_in_pixels", TRUE, "y_in_pixels", TRUE, - NULL); - - if (druid_page_start->logo_image != NULL) - gnome_canvas_item_set (druid_page_start->_priv->logo_item, - "pixbuf", druid_page_start->logo_image, NULL); - - druid_page_start->_priv->watermark_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_start->_priv->canvas)), - gnome_canvas_pixbuf_get_type (), - "x_in_pixels", TRUE, "y_in_pixels", TRUE, - NULL); - - if (druid_page_start->watermark_image != NULL) - gnome_canvas_item_set (druid_page_start->_priv->watermark_item, - "pixbuf", druid_page_start->watermark_image, NULL); - - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->title_color); - druid_page_start->_priv->title_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_start->_priv->canvas)), - gnome_canvas_text_get_type (), - "text", druid_page_start->title, - "fill_color_rgba", fill_color, - "font", _("-adobe-helvetica-bold-r-normal-*-*-180-*-*-p-*-*-*"), - NULL); - - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->text_color); - druid_page_start->_priv->text_item = - gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (druid_page_start->_priv->canvas)), - gnome_canvas_text_get_type (), - "text", druid_page_start->text, - "justification", GTK_JUSTIFY_LEFT, - "font", _("-adobe-helvetica-medium-r-normal-*-*-120-*-*-p-*-*-*"), - "fill_color_rgba", fill_color, - NULL); - - nautilus_druid_page_start_configure_size (druid_page_start, DRUID_PAGE_WIDTH, DRUID_PAGE_HEIGHT); - gtk_signal_connect (GTK_OBJECT (druid_page_start), - "prepare", - nautilus_druid_page_start_prepare, - NULL); -} -static void -nautilus_druid_page_start_prepare (NautilusDruidPage *page, - GtkWidget *druid, - gpointer *data) -{ - nautilus_druid_set_buttons_sensitive (NAUTILUS_DRUID (druid), FALSE, TRUE, TRUE); - nautilus_druid_set_show_finish (NAUTILUS_DRUID (druid), FALSE); - gtk_widget_grab_default (NAUTILUS_DRUID (druid)->next); -} - - -static void -nautilus_druid_page_start_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GTK_WIDGET_CLASS (parent_class)->size_allocate (widget, allocation); - gnome_canvas_set_scroll_region (GNOME_CANVAS (NAUTILUS_DRUID_PAGE_START (widget)->_priv->canvas), - 0.0, 0.0, - allocation->width, - allocation->height); - nautilus_druid_page_start_configure_size (NAUTILUS_DRUID_PAGE_START (widget), - allocation->width, - allocation->height); -} - -#if 0 -/* Fragment left behind by CVS. Don't get it. */ - gnome_canvas_item_set (druid_page_start->_priv->background_item, - "fill_color_gdk", &(druid_page_start->background_color), - NULL); - gnome_canvas_item_set (druid_page_start->_priv->textbox_item, - "fill_color_gdk", &(druid_page_start->textbox_color), - "outline_color_gdk", &(druid_page_start->background_color), - NULL); - gnome_canvas_item_set (druid_page_start->_priv->logoframe_item, - "fill_color_gdk", &druid_page_start->logo_background_color, - NULL); - gnome_canvas_item_set (druid_page_start->_priv->title_item, - "fill_color_gdk", &druid_page_start->title_color, - NULL); - gnome_canvas_item_set (druid_page_start->_priv->text_item, - "fill_color_gdk", &druid_page_start->text_color, - NULL); - GTK_WIDGET_CLASS (parent_class)->realize (widget); -} -#endif -/** - * nautilus_druid_page_start_new: - * - * Creates a new NautilusDruidPageStart widget. - * - * Return value: Pointer to new NautilusDruidPageStart - **/ -/* Public functions */ -GtkWidget * -nautilus_druid_page_start_new (void) -{ - GtkWidget *retval = GTK_WIDGET (gtk_type_new (nautilus_druid_page_start_get_type ())); - NAUTILUS_DRUID_PAGE_START (retval)->title = g_strdup (""); - NAUTILUS_DRUID_PAGE_START (retval)->text = g_strdup (""); - NAUTILUS_DRUID_PAGE_START (retval)->logo_image = NULL; - NAUTILUS_DRUID_PAGE_START (retval)->watermark_image = NULL; - nautilus_druid_page_start_construct (NAUTILUS_DRUID_PAGE_START (retval)); - return retval; -} -/** - * nautilus_druid_page_start_new_with_vals: - * @title: The title. - * @text: The introduction text. - * @logo: The logo in the upper right corner. - * @watermark: The watermark on the left. - * - * This will create a new GNOME Druid start page, with the values - * given. It is acceptable for any of them to be %NULL. - * - * Return value: GtkWidget pointer to new NautilusDruidPageStart. - **/ -GtkWidget * -nautilus_druid_page_start_new_with_vals (const gchar *title, const gchar* text, - GdkPixbuf *logo, GdkPixbuf *watermark) -{ - GtkWidget *retval = GTK_WIDGET (gtk_type_new (nautilus_druid_page_start_get_type ())); - NAUTILUS_DRUID_PAGE_START (retval)->title = g_strdup (title); - NAUTILUS_DRUID_PAGE_START (retval)->text = g_strdup (text); - NAUTILUS_DRUID_PAGE_START (retval)->logo_image = logo; - NAUTILUS_DRUID_PAGE_START (retval)->watermark_image = watermark; - nautilus_druid_page_start_construct (NAUTILUS_DRUID_PAGE_START (retval)); - return retval; -} - -/** - * nautilus_druid_page_start_set_bg_color: - * @druid_page_start: A DruidPageStart. - * @color: The new background color. - * - * This will set the background color to be the @color. You do not - * need to allocate the color, as the @druid_page_start will do it for - * you. - **/ -void -nautilus_druid_page_start_set_bg_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color) -{ - guint fill_color; - - g_return_if_fail (druid_page_start != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_START (druid_page_start)); - - druid_page_start->background_color.red = color->red; - druid_page_start->background_color.green = color->green; - druid_page_start->background_color.blue = color->blue; - - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->background_color); - - gnome_canvas_item_set (druid_page_start->_priv->textbox_item, - "outline_color_rgba", fill_color, - NULL); - gnome_canvas_item_set (druid_page_start->_priv->background_item, - "fill_color_rgba", fill_color, - NULL); -} - -void -nautilus_druid_page_start_set_textbox_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color) -{ - guint fill_color; - - g_return_if_fail (druid_page_start != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_START (druid_page_start)); - - druid_page_start->textbox_color.red = color->red; - druid_page_start->textbox_color.green = color->green; - druid_page_start->textbox_color.blue = color->blue; - - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->textbox_color); - gnome_canvas_item_set (druid_page_start->_priv->textbox_item, - "fill_color_rgba", fill_color, - NULL); -} - -void -nautilus_druid_page_start_set_logo_bg_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color) -{ - guint fill_color; - - g_return_if_fail (druid_page_start != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_START (druid_page_start)); - - druid_page_start->logo_background_color.red = color->red; - druid_page_start->logo_background_color.green = color->green; - druid_page_start->logo_background_color.blue = color->blue; - - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->logo_background_color); - gnome_canvas_item_set (druid_page_start->_priv->logoframe_item, - "fill_color_rgba", fill_color, - NULL); -} -void -nautilus_druid_page_start_set_title_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color) -{ - guint32 fill_color; - - g_return_if_fail (druid_page_start != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_START (druid_page_start)); - - druid_page_start->title_color.red = color->red; - druid_page_start->title_color.green = color->green; - druid_page_start->title_color.blue = color->blue; - - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->title_color); - gnome_canvas_item_set (druid_page_start->_priv->title_item, - "fill_color_rgba", fill_color, - NULL); -} -void -nautilus_druid_page_start_set_text_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color) -{ - guint32 fill_color; - - g_return_if_fail (druid_page_start != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_START (druid_page_start)); - - druid_page_start->text_color.red = color->red; - druid_page_start->text_color.green = color->green; - druid_page_start->text_color.blue = color->blue; - - fill_color = GDK_COLOR_TO_RGBA (druid_page_start->text_color); - gnome_canvas_item_set (druid_page_start->_priv->text_item, - "fill_color_rgba", fill_color, - NULL); -} -void -nautilus_druid_page_start_set_text (NautilusDruidPageStart *druid_page_start, - const gchar *text) -{ - g_return_if_fail (druid_page_start != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_START (druid_page_start)); - - g_free (druid_page_start->text); - druid_page_start->text = g_strdup (text); - gnome_canvas_item_set (druid_page_start->_priv->text_item, - "text", druid_page_start->text, - NULL); -} -void -nautilus_druid_page_start_set_title (NautilusDruidPageStart *druid_page_start, - const gchar *title) -{ - g_return_if_fail (druid_page_start != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_START (druid_page_start)); - - g_free (druid_page_start->title); - druid_page_start->title = g_strdup (title); - gnome_canvas_item_set (druid_page_start->_priv->title_item, - "text", druid_page_start->title, - NULL); -} -void -nautilus_druid_page_start_set_logo (NautilusDruidPageStart *druid_page_start, - GdkPixbuf *logo_image) -{ - g_return_if_fail (druid_page_start != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_START (druid_page_start)); - - if (druid_page_start->logo_image) - gdk_pixbuf_unref (druid_page_start->logo_image); - - druid_page_start->logo_image = logo_image; - 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) -{ - g_return_if_fail (druid_page_start != NULL); - g_return_if_fail (NAUTILUS_IS_DRUID_PAGE_START (druid_page_start)); - - if (druid_page_start->watermark_image) - gdk_pixbuf_unref (druid_page_start->watermark_image); - - druid_page_start->watermark_image = watermark; - gdk_pixbuf_ref (watermark); - gnome_canvas_item_set (druid_page_start->_priv->watermark_item, - "pixbuf", druid_page_start->watermark_image, NULL); -} diff --git a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.h b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.h deleted file mode 100644 index 14cb76379..000000000 --- a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid-page-start.h +++ /dev/null @@ -1,91 +0,0 @@ -/* nautilus-druid-page-start.h - * Copyright (C) 1999 Red Hat, Inc. - * - * This 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. - * - * This 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 this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -#ifndef __NAUTILUS_DRUID_PAGE_START_H__ -#define __NAUTILUS_DRUID_PAGE_START_H__ - -#include <gtk/gtk.h> -#include <libgnomeui/gnome-canvas.h> -#include <widgets/nautilus-druid/nautilus-druid-page.h> -#include <gdk-pixbuf/gdk-pixbuf.h> - -BEGIN_GNOME_DECLS - -#define NAUTILUS_TYPE_DRUID_PAGE_START (nautilus_druid_page_start_get_type ()) -#define NAUTILUS_DRUID_PAGE_START(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_DRUID_PAGE_START, NautilusDruidPageStart)) -#define NAUTILUS_DRUID_PAGE_START_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_DRUID_PAGE_START, NautilusDruidPageStartClass)) -#define NAUTILUS_IS_DRUID_PAGE_START(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_DRUID_PAGE_START)) -#define NAUTILUS_IS_DRUID_PAGE_START_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_DRUID_PAGE_START)) - - -typedef struct _NautilusDruidPageStart NautilusDruidPageStart; -typedef struct _NautilusDruidPageStartPrivate NautilusDruidPageStartPrivate; -typedef struct _NautilusDruidPageStartClass NautilusDruidPageStartClass; - -struct _NautilusDruidPageStart -{ - NautilusDruidPage parent; - - GdkColor background_color; - GdkColor textbox_color; - GdkColor logo_background_color; - GdkColor title_color; - GdkColor text_color; - - gchar *title; - gchar *text; - GdkPixbuf *logo_image; - GdkPixbuf *watermark_image; - - /*< private >*/ - NautilusDruidPageStartPrivate *_priv; -}; -struct _NautilusDruidPageStartClass -{ - NautilusDruidPageClass parent_class; -}; - - -GtkType nautilus_druid_page_start_get_type (void); -GtkWidget *nautilus_druid_page_start_new (void); -GtkWidget *nautilus_druid_page_start_new_with_vals(const gchar *title, - const gchar* text, - GdkPixbuf *logo, - GdkPixbuf *watermark); -void nautilus_druid_page_start_set_bg_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color); -void nautilus_druid_page_start_set_textbox_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color); -void nautilus_druid_page_start_set_logo_bg_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color); -void nautilus_druid_page_start_set_title_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color); -void nautilus_druid_page_start_set_text_color (NautilusDruidPageStart *druid_page_start, - GdkColor *color); -void nautilus_druid_page_start_set_text (NautilusDruidPageStart *druid_page_start, - const gchar *text); -void nautilus_druid_page_start_set_title (NautilusDruidPageStart *druid_page_start, - const gchar *title); -void nautilus_druid_page_start_set_logo (NautilusDruidPageStart *druid_page_start, - GdkPixbuf *logo_image); -void nautilus_druid_page_start_set_watermark (NautilusDruidPageStart *druid_page_start, - GdkPixbuf *watermark); - -END_GNOME_DECLS - -#endif /* __NAUTILUS_DRUID_PAGE_START_H__ */ diff --git a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid.c b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid.c index 731b1a87f..ce647aba1 100644 --- a/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid.c +++ b/cut-n-paste-code/widgets/nautilus-druid/nautilus-druid.c @@ -139,6 +139,8 @@ nautilus_druid_init (NautilusDruid *druid) druid->_priv = g_new0(NautilusDruidPrivate, 1); + GTK_CONTAINER (druid)->border_width = GNOME_PAD_SMALL; + /* set up the buttons */ GTK_WIDGET_SET_FLAGS (GTK_WIDGET (druid), GTK_NO_WINDOW); pixmap = gnome_stock_new_with_icon(GNOME_STOCK_BUTTON_PREV); @@ -222,10 +224,13 @@ nautilus_druid_size_request (GtkWidget *widget, NautilusDruid *druid; GtkRequisition child_requisition; NautilusDruidPage *child; + int border; g_return_if_fail (widget != NULL); g_return_if_fail (NAUTILUS_IS_DRUID (widget)); + border = GTK_CONTAINER(widget)->border_width; + druid = NAUTILUS_DRUID (widget); temp_height = temp_width = 0; @@ -241,8 +246,8 @@ nautilus_druid_size_request (GtkWidget *widget, } } - requisition->width = temp_width + 2 * GNOME_PAD_SMALL; - requisition->height = temp_height + 2 * GNOME_PAD_SMALL; + requisition->width = temp_width + 2 * border; + requisition->height = temp_height + 2 * border; /* In an Attempt to show how the widgets are packed, * here's a little diagram. @@ -273,16 +278,13 @@ nautilus_druid_size_request (GtkWidget *widget, temp_width = MAX (temp_width, child_requisition.width); temp_height = MAX (temp_height, child_requisition.height); - temp_width += GNOME_PAD_SMALL * 2; + temp_width += border * 2; temp_height += GNOME_PAD_SMALL; /* FIXME. do we need to do something with the buttons requisition? */ temp_width = temp_width * 17/4 + GNOME_PAD_SMALL * 3; /* pick which is bigger, the buttons, or the NautilusDruidPages */ requisition->width = MAX (temp_width, requisition->width); - requisition->height += temp_height + GNOME_PAD_SMALL * 2; - /* And finally, put the side padding in */ - requisition->width += GNOME_PAD_SMALL *2; } static void nautilus_druid_size_allocate (GtkWidget *widget, @@ -292,6 +294,7 @@ nautilus_druid_size_allocate (GtkWidget *widget, GtkAllocation child_allocation; gint button_height; GList *list; + int border; g_return_if_fail (widget != NULL); g_return_if_fail (NAUTILUS_IS_DRUID (widget)); @@ -327,15 +330,17 @@ nautilus_druid_size_allocate (GtkWidget *widget, child_allocation.x -= (GNOME_PAD_SMALL + child_allocation.width); gtk_widget_size_allocate (druid->back, &child_allocation); + border = GTK_CONTAINER(widget)->border_width; + /* Put up the NautilusDruidPage */ - child_allocation.x = allocation->x + GNOME_PAD_SMALL; - child_allocation.y = allocation->y + GNOME_PAD_SMALL; + child_allocation.x = allocation->x + border; + child_allocation.y = allocation->y + border; child_allocation.width = - ((allocation->width - 2* GNOME_PAD_SMALL) > 0) ? - (allocation->width - 2* GNOME_PAD_SMALL):0; + ((allocation->width - 2 * border) > 0) ? + (allocation->width - 2 * border):0; child_allocation.height = - ((allocation->height - 3 * GNOME_PAD_SMALL - button_height) > 0) ? - (allocation->height - 3 * GNOME_PAD_SMALL - button_height):0; + ((allocation->height - 2 * border - GNOME_PAD_SMALL - button_height) > 0) ? + (allocation->height - 2 * border - GNOME_PAD_SMALL - button_height):0; for (list = druid->_priv->children; list; list=list->next) { if (GTK_WIDGET_VISIBLE (list->data)) { gtk_widget_size_allocate (GTK_WIDGET (list->data), &child_allocation); |