aboutsummaryrefslogtreecommitdiffstats
path: root/executive-summary/widgets/e-summary-titlebar.c
diff options
context:
space:
mode:
Diffstat (limited to 'executive-summary/widgets/e-summary-titlebar.c')
-rw-r--r--executive-summary/widgets/e-summary-titlebar.c412
1 files changed, 0 insertions, 412 deletions
diff --git a/executive-summary/widgets/e-summary-titlebar.c b/executive-summary/widgets/e-summary-titlebar.c
deleted file mode 100644
index b79e0dc8c7..0000000000
--- a/executive-summary/widgets/e-summary-titlebar.c
+++ /dev/null
@@ -1,412 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-titlebar.c
- *
- * Authors: Iain Holmes <iain@helixcode.com>
- *
- * Copyright (C) 2000 Helix Code, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program 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
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gal/util/e-util.h>
-#include <gal/widgets/e-font.h>
-
-#include <gal/e-text/e-text.h>
-
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include "e-summary-titlebar.h"
-#include "e-summary-title-button.h"
-
-/* XPMS */
-#include "edit.xpm"
-#include "x.xpm"
-#include "shade.xpm"
-
-#define PARENT_TYPE (gnome_canvas_group_get_type ())
-#define TITLEBAR_BORDER_WIDTH 2
-
-enum {
- ARG_0,
- ARG_TEXT,
- ARG_WIDTH,
- ARG_HEIGHT
-};
-
-enum {
- EDIT,
- SHADE,
- CLOSE,
- LAST_SIGNAL
-};
-
-static void e_summary_titlebar_destroy (GtkObject *object);
-static void e_summary_titlebar_class_init (GtkObjectClass *object_class);
-static void e_summary_titlebar_init (GtkObject *object);
-
-static GnomeCanvasGroupClass *parent_class;
-static guint titlebar_signals[LAST_SIGNAL] = { 0 };
-
-struct _ESummaryTitlebarPrivate {
- GnomeCanvasItem *rect;
- GnomeCanvasItem *titletext;
-
- GnomeCanvasItem *edit;
- GnomeCanvasItem *shade;
- GnomeCanvasItem *close;
-
- char *text;
- double width, height;
-};
-
-static void
-e_summary_titlebar_destroy (GtkObject *object)
-{
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
-
- titlebar = E_SUMMARY_TITLEBAR (object);
- priv = titlebar->private;
-
- if (priv == NULL)
- return;
-
- g_free (priv);
- titlebar->private = NULL;
-
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-static void
-edit_cb (GnomeCanvasItem *item,
- ESummaryTitlebar *titlebar)
-{
- gtk_signal_emit (GTK_OBJECT (titlebar), titlebar_signals[EDIT]);
-}
-
-static void
-shade_cb (GnomeCanvasItem *item,
- ESummaryTitlebar *titlebar)
-{
- gtk_signal_emit (GTK_OBJECT (titlebar), titlebar_signals[SHADE]);
-}
-
-static void
-close_cb (GnomeCanvasItem *item,
- ESummaryTitlebar *titlebar)
-{
- gtk_signal_emit (GTK_OBJECT (titlebar), titlebar_signals[CLOSE]);
-}
-
-static void
-e_summary_titlebar_realize (GnomeCanvasItem *item)
-{
- GnomeCanvasGroup *group;
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
- GdkPixbuf *pb;
- EFont *font;
- int font_height;
-
- group = GNOME_CANVAS_GROUP (item);
- titlebar = E_SUMMARY_TITLEBAR (item);
- priv = titlebar->private;
-
- font = e_font_from_gdk_font (GTK_WIDGET (item->canvas)->style->font);
- font_height = e_font_height (font);
- priv->height = 18 + 2 * TITLEBAR_BORDER_WIDTH; /* FIXME: Not hardcoded */
-
- priv->rect = gnome_canvas_item_new (group,
- gnome_canvas_rect_get_type (),
- "x1", 0.0,
- "y1", 0.0,
- "y2", (double) priv->height,
- "x2", priv->width,
- "fill_color_rgba", 0x88AAFFFF,
- NULL);
-
- pb = gdk_pixbuf_new_from_xpm_data ((const char**) x_xpm);
- priv->close = gnome_canvas_item_new (group,
- e_summary_title_button_get_type (),
- "x", (double) priv->width - TITLEBAR_BORDER_WIDTH - 18,
- "y", (double) TITLEBAR_BORDER_WIDTH,
- "pixbuf", pb,
- NULL);
- gdk_pixbuf_unref (pb);
- gtk_signal_connect (GTK_OBJECT (priv->close), "clicked",
- GTK_SIGNAL_FUNC (close_cb), titlebar);
-
- pb = gdk_pixbuf_new_from_xpm_data ((const char**) shade_xpm);
- priv->shade = gnome_canvas_item_new (group,
- e_summary_title_button_get_type (),
- "x", (double) priv->width - (TITLEBAR_BORDER_WIDTH * 2) - 36,
- "y", (double) TITLEBAR_BORDER_WIDTH,
- "pixbuf", pb,
- NULL);
- gdk_pixbuf_unref (pb);
- gtk_signal_connect (GTK_OBJECT (priv->shade), "clicked",
- GTK_SIGNAL_FUNC (shade_cb), titlebar);
-
- pb = gdk_pixbuf_new_from_xpm_data ((const char**) edit_xpm);
- priv->edit = gnome_canvas_item_new (group,
- e_summary_title_button_get_type (),
- "x", (double) priv->width - (TITLEBAR_BORDER_WIDTH * 3) - 54,
- "y", (double) TITLEBAR_BORDER_WIDTH,
- "pixbuf", pb,
- NULL);
- gdk_pixbuf_unref (pb);
- gtk_signal_connect (GTK_OBJECT (priv->edit), "clicked",
- GTK_SIGNAL_FUNC (edit_cb), titlebar);
-
- priv->titletext = gnome_canvas_item_new (group,
- e_text_get_type (),
- "text", priv->text,
- "font_gdk", GTK_WIDGET (item->canvas)->style->font,
- "clip_width", (double) priv->width -
- (TITLEBAR_BORDER_WIDTH*4)- 50,
- "clip_height", (double) e_font_height (font),
-
- "clip", TRUE,
- "use_ellipsis", TRUE,
- "fill_color", "black",
- "anchor", GTK_ANCHOR_NW,
- "draw_background", FALSE,
- NULL);
- gnome_canvas_item_move (priv->titletext, TITLEBAR_BORDER_WIDTH,
- (priv->height - font_height) / 2);
-
- if (GNOME_CANVAS_ITEM_CLASS (parent_class)->realize)
- (* GNOME_CANVAS_ITEM_CLASS (parent_class)->realize) (item);
-}
-
-static void
-e_summary_titlebar_unrealize (GnomeCanvasItem *item)
-{
- if (GNOME_CANVAS_ITEM_CLASS (parent_class)->unrealize)
- (* GNOME_CANVAS_ITEM_CLASS (parent_class)->unrealize) (item);
-}
-
-static void
-e_summary_titlebar_set_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id)
-{
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
-
- titlebar = E_SUMMARY_TITLEBAR (object);
- priv = titlebar->private;
-
- switch (arg_id) {
- case ARG_TEXT:
- if (priv->text)
- g_free (priv->text);
-
- priv->text = g_strdup (GTK_VALUE_STRING (*arg));
-
- if (priv->titletext)
- gnome_canvas_item_set (priv->titletext,
- "text", priv->text,
- NULL);
- break;
-
- case ARG_WIDTH:
- priv->width = GTK_VALUE_DOUBLE (*arg);
-
- if (priv->rect)
- gnome_canvas_item_set (priv->rect,
- "x2", priv->width,
- NULL);
- if (priv->titletext)
- gnome_canvas_item_set (priv->titletext,
- "clip_width", priv->width -
- (TITLEBAR_BORDER_WIDTH* 4) - 42,
- NULL);
- break;
-
- default:
- break;
- }
-}
-
-static void
-e_summary_titlebar_get_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id)
-{
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
-
- titlebar = E_SUMMARY_TITLEBAR (object);
- priv = titlebar->private;
-
- switch (arg_id) {
- case ARG_TEXT:
- GTK_VALUE_STRING (*arg) = priv->text;
- break;
-
- case ARG_WIDTH:
- GTK_VALUE_DOUBLE (*arg) = priv->width;
- break;
-
- case ARG_HEIGHT:
- GTK_VALUE_DOUBLE (*arg) = priv->height;
- break;
-
- default:
- arg->type = GTK_TYPE_INVALID;
- break;
- }
-}
-
-static gint
-e_summary_titlebar_event (GnomeCanvasItem *item,
- GdkEvent *event)
-{
- if (event->type == GDK_2BUTTON_PRESS &&
- event->button.button == 1) {
- gtk_signal_emit (GTK_OBJECT (item), titlebar_signals[SHADE]);
- return FALSE;
- } else {
- return TRUE;
- }
-}
-
-static double
-e_summary_titlebar_point (GnomeCanvasItem *item,
- double x,
- double y,
- int cx,
- int cy,
- GnomeCanvasItem **actual_item)
-{
- ESummaryTitlebar *est;
- ESummaryTitlebarPrivate *priv;
- GnomeCanvasItem *ret_item;
- double d;
-
- est = E_SUMMARY_TITLEBAR (item);
- priv = est->private;
-
- d = (* GNOME_CANVAS_ITEM_CLASS
- (GTK_OBJECT (priv->edit)->klass)->point) (priv->edit,
- x, y,
- cx, cy,
- &ret_item);
- if (d == 0.0) {
- *actual_item = ret_item;
- return 0.0;
- }
-
- d = (* GNOME_CANVAS_ITEM_CLASS
- (GTK_OBJECT (priv->shade)->klass)->point) (priv->shade,
- x, y,
- cx, cy,
- &ret_item);
- if (d == 0.0) {
- *actual_item = ret_item;
- return 0.0;
- }
-
- d = (* GNOME_CANVAS_ITEM_CLASS
- (GTK_OBJECT (priv->close)->klass)->point) (priv->close,
- x, y,
- cx, cy,
- &ret_item);
- if (d == 0.0) {
- *actual_item = ret_item;
- return 0.0;
- }
-
- *actual_item = item;
- return 0.0;
-}
-
-static void
-e_summary_titlebar_class_init (GtkObjectClass *object_class)
-{
- GnomeCanvasItemClass *item_class;
-
- item_class = (GnomeCanvasItemClass *) object_class;
-
- object_class->destroy = e_summary_titlebar_destroy;
- object_class->set_arg = e_summary_titlebar_set_arg;
- object_class->get_arg = e_summary_titlebar_get_arg;
-
- item_class->realize = e_summary_titlebar_realize;
- item_class->unrealize = e_summary_titlebar_unrealize;
- item_class->event = e_summary_titlebar_event;
- item_class->point = e_summary_titlebar_point;
-
- gtk_object_add_arg_type ("ESummaryTitlebar::text",
- GTK_TYPE_STRING, GTK_ARG_READWRITE,
- ARG_TEXT);
- gtk_object_add_arg_type ("ESummaryTitlebar::width",
- GTK_TYPE_DOUBLE, GTK_ARG_READWRITE,
- ARG_WIDTH);
- gtk_object_add_arg_type ("ESummaryTitlebar::height",
- GTK_TYPE_DOUBLE, GTK_ARG_READABLE,
- ARG_HEIGHT);
-
- titlebar_signals[EDIT] = gtk_signal_new ("edit", GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ESummaryTitlebarClass,
- edit),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
- titlebar_signals[SHADE] = gtk_signal_new ("shade", GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ESummaryTitlebarClass,
- shade),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
- titlebar_signals[CLOSE] = gtk_signal_new ("close", GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ESummaryTitlebarClass,
- close),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
- gtk_object_class_add_signals (object_class, titlebar_signals,
- LAST_SIGNAL);
-
- parent_class = gtk_type_class (PARENT_TYPE);
-}
-
-static void
-e_summary_titlebar_init (GtkObject *object)
-{
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
-
- titlebar = E_SUMMARY_TITLEBAR (object);
- titlebar->private = g_new0 (ESummaryTitlebarPrivate, 1);
- priv = titlebar->private;
-
- priv->width = 100.0;
- priv->text = NULL;
-
- gdk_rgb_init ();
-}
-
-E_MAKE_TYPE (e_summary_titlebar, "ESummaryTitlebar", ESummaryTitlebar,
- e_summary_titlebar_class_init, e_summary_titlebar_init,
- PARENT_TYPE);
-