Remove this, since it claims to be deprecated, and nothing is actually
* e-messagebox.c: Remove this, since it claims to be deprecated,
and nothing is actually using it any more.
* Makefile.am: Remove e-messagebox.[ch]
svn path=/trunk/; revision=21900
This commit is contained in:
@ -4,6 +4,11 @@
|
||||
from empty.xpm rather than just calling gdk_pixbuf_new(), which
|
||||
doesn't actually initialize the pixel data.
|
||||
|
||||
* e-messagebox.c: Remove this, since it claims to be deprecated,
|
||||
and nothing is actually using it any more.
|
||||
|
||||
* Makefile.am: Remove e-messagebox.[ch]
|
||||
|
||||
2003-07-11 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
* e-dateedit.c (e_date_edit_mnemonic_activate): Added a handler
|
||||
|
||||
@ -26,7 +26,6 @@ widgetsinclude_HEADERS = \
|
||||
e-dateedit.h \
|
||||
e-dropdown-button.h \
|
||||
e-map.h \
|
||||
e-messagebox.h \
|
||||
e-multi-config-dialog.h \
|
||||
e-search-bar.h \
|
||||
e-title-bar.h \
|
||||
@ -45,7 +44,6 @@ libemiscwidgets_la_SOURCES = \
|
||||
e-dateedit.c \
|
||||
e-dropdown-button.c \
|
||||
e-map.c \
|
||||
e-messagebox.c \
|
||||
e-multi-config-dialog.c \
|
||||
e-search-bar.c \
|
||||
e-title-bar.c \
|
||||
|
||||
@ -1,358 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||
/*
|
||||
* Original Author: Jay Painter
|
||||
* Modified: Jeffrey Stedfast
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2 of the GNU General Public
|
||||
* License as published by the Free Software Foundation.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <config.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h> /* for strcmp */
|
||||
|
||||
#include <glib.h>
|
||||
#include <gtk/gtkalignment.h>
|
||||
#include <gtk/gtkcheckbutton.h>
|
||||
#include <gtk/gtkhbox.h>
|
||||
#include <gtk/gtklabel.h>
|
||||
#include <libgnome/gnome-i18n.h>
|
||||
#include <libgnome/gnome-triggers.h>
|
||||
#include <libgnome/gnome-util.h>
|
||||
#include <libgnomeui/gnome-pixmap.h>
|
||||
#include <libgnomeui/gnome-uidefs.h>
|
||||
#include "e-messagebox.h"
|
||||
|
||||
#define E_MESSAGE_BOX_WIDTH 425
|
||||
#define E_MESSAGE_BOX_HEIGHT 125
|
||||
|
||||
struct _EMessageBoxPrivate {
|
||||
GtkWidget *label;
|
||||
GtkWidget *checkbox;
|
||||
};
|
||||
|
||||
static void e_message_box_class_init (EMessageBoxClass *klass);
|
||||
static void e_message_box_init (EMessageBox *messagebox);
|
||||
static void e_message_box_finalize (GObject *object);
|
||||
static void e_message_box_destroy (GtkObject *object);
|
||||
|
||||
static GnomeDialogClass *parent_class;
|
||||
|
||||
GtkType
|
||||
e_message_box_get_type (void)
|
||||
{
|
||||
static GtkType message_box_type = 0;
|
||||
|
||||
if (!message_box_type) {
|
||||
GtkTypeInfo message_box_info = {
|
||||
"EMessageBox",
|
||||
sizeof (EMessageBox),
|
||||
sizeof (EMessageBoxClass),
|
||||
(GtkClassInitFunc) e_message_box_class_init,
|
||||
(GtkObjectInitFunc) e_message_box_init,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
message_box_type = gtk_type_unique (gnome_dialog_get_type (), &message_box_info);
|
||||
}
|
||||
|
||||
return message_box_type;
|
||||
}
|
||||
|
||||
static void
|
||||
e_message_box_class_init (EMessageBoxClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class;
|
||||
GtkObjectClass *object_class;
|
||||
|
||||
gobject_class = (GObjectClass *) klass;
|
||||
object_class = (GtkObjectClass *) klass;
|
||||
parent_class = g_type_class_ref(gnome_dialog_get_type ());
|
||||
|
||||
gobject_class->finalize = e_message_box_finalize;
|
||||
|
||||
object_class->destroy = e_message_box_destroy;
|
||||
}
|
||||
|
||||
static void
|
||||
e_message_box_init (EMessageBox *message_box)
|
||||
{
|
||||
message_box->_priv = g_new0 (EMessageBoxPrivate, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
e_message_box_finalize (GObject *object)
|
||||
{
|
||||
EMessageBox *mbox = E_MESSAGE_BOX (object);
|
||||
|
||||
g_free (mbox->_priv);
|
||||
mbox->_priv = NULL;
|
||||
|
||||
if (G_OBJECT_CLASS (parent_class)->finalize)
|
||||
(* G_OBJECT_CLASS (parent_class)->finalize) (object);
|
||||
}
|
||||
|
||||
static void
|
||||
e_message_box_destroy (GtkObject *object)
|
||||
{
|
||||
/* remember, destroy can be run multiple times! */
|
||||
if (GTK_OBJECT_CLASS (parent_class)->destroy)
|
||||
(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
|
||||
}
|
||||
|
||||
/**
|
||||
* e_message_box_construct:
|
||||
* @messagebox: The message box to construct
|
||||
* @message: The message to be displayed.
|
||||
* @message_box_type: The type of the message
|
||||
* @buttons: a NULL terminated array with the buttons to insert.
|
||||
*
|
||||
* For language bindings or subclassing, from C use #e_message_box_new or
|
||||
* #e_message_box_newv
|
||||
*
|
||||
* Returns:
|
||||
*/
|
||||
void
|
||||
e_message_box_construct (EMessageBox *messagebox,
|
||||
const gchar *message,
|
||||
const gchar *message_box_type,
|
||||
const gchar **buttons)
|
||||
{
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *pixmap = NULL;
|
||||
GtkWidget *alignment;
|
||||
char *s;
|
||||
GtkStyle *style;
|
||||
const gchar* title = NULL;
|
||||
gint i = 0;
|
||||
|
||||
g_return_if_fail (messagebox != NULL);
|
||||
g_return_if_fail (E_IS_MESSAGE_BOX (messagebox));
|
||||
g_return_if_fail (message != NULL);
|
||||
g_return_if_fail (message_box_type != NULL);
|
||||
|
||||
style = gtk_widget_get_style (GTK_WIDGET (messagebox));
|
||||
|
||||
/* Make noises, basically */
|
||||
gnome_triggers_vdo (message, message_box_type, NULL);
|
||||
|
||||
if (strcmp (E_MESSAGE_BOX_INFO, message_box_type) == 0) {
|
||||
title = _("Information");
|
||||
s = gnome_unconditional_pixmap_file("gnome-info.png");
|
||||
if (s) {
|
||||
pixmap = gnome_pixmap_new_from_file (s);
|
||||
g_free(s);
|
||||
}
|
||||
} else if (strcmp (E_MESSAGE_BOX_WARNING, message_box_type) == 0) {
|
||||
title = _("Warning");
|
||||
s = gnome_unconditional_pixmap_file ("gnome-warning.png");
|
||||
if (s) {
|
||||
pixmap = gnome_pixmap_new_from_file (s);
|
||||
g_free (s);
|
||||
}
|
||||
} else if (strcmp (E_MESSAGE_BOX_ERROR, message_box_type) == 0) {
|
||||
title = _("Error");
|
||||
s = gnome_unconditional_pixmap_file ("gnome-error");
|
||||
if (s) {
|
||||
pixmap = gnome_pixmap_new_from_file (s);
|
||||
g_free(s);
|
||||
}
|
||||
} else if (strcmp (E_MESSAGE_BOX_QUESTION, message_box_type) == 0) {
|
||||
title = _("Question");
|
||||
s = gnome_unconditional_pixmap_file ("gnome-question.png");
|
||||
if (s) {
|
||||
pixmap = gnome_pixmap_new_from_file (s);
|
||||
g_free (s);
|
||||
}
|
||||
} else {
|
||||
title = _("Message");
|
||||
}
|
||||
|
||||
g_assert (title != NULL);
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (messagebox), title);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (messagebox)->vbox),
|
||||
hbox, TRUE, TRUE, 10);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
if (pixmap == NULL) {
|
||||
if (pixmap)
|
||||
gtk_widget_destroy (pixmap);
|
||||
s = gnome_unconditional_pixmap_file ("gnome-default.png");
|
||||
if (s) {
|
||||
pixmap = gnome_pixmap_new_from_file (s);
|
||||
g_free (s);
|
||||
} else
|
||||
pixmap = NULL;
|
||||
}
|
||||
if (pixmap) {
|
||||
gtk_box_pack_start (GTK_BOX (hbox), pixmap, FALSE, TRUE, 0);
|
||||
gtk_widget_show (pixmap);
|
||||
}
|
||||
|
||||
messagebox->_priv->label = gtk_label_new (message);
|
||||
gtk_label_set_justify (GTK_LABEL (messagebox->_priv->label), GTK_JUSTIFY_LEFT);
|
||||
gtk_label_set_line_wrap (GTK_LABEL (messagebox->_priv->label), TRUE);
|
||||
gtk_misc_set_padding (GTK_MISC (messagebox->_priv->label), GNOME_PAD, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), messagebox->_priv->label, TRUE, TRUE, 0);
|
||||
gtk_widget_show (messagebox->_priv->label);
|
||||
|
||||
/* Add some extra space on the right to balance the pixmap */
|
||||
if (pixmap) {
|
||||
alignment = gtk_alignment_new (0., 0., 0., 0.);
|
||||
gtk_widget_set_size_request (alignment, GNOME_PAD, -1);
|
||||
gtk_widget_show (alignment);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (hbox), alignment, FALSE, FALSE, 0);
|
||||
}
|
||||
|
||||
/* Add the "Don't show this message again." checkbox */
|
||||
messagebox->_priv->checkbox = gtk_check_button_new_with_label (_("Don't show this message again."));
|
||||
gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (messagebox)->vbox),
|
||||
messagebox->_priv->checkbox, TRUE, TRUE, 10);
|
||||
gtk_widget_show (messagebox->_priv->checkbox);
|
||||
|
||||
if (buttons) {
|
||||
while (buttons[i]) {
|
||||
gnome_dialog_append_button (GNOME_DIALOG (messagebox),
|
||||
buttons[i]);
|
||||
i++;
|
||||
};
|
||||
}
|
||||
|
||||
if (GNOME_DIALOG (messagebox)->buttons)
|
||||
gtk_widget_grab_focus (g_list_last (GNOME_DIALOG (messagebox)->buttons)->data);
|
||||
|
||||
gnome_dialog_set_close (GNOME_DIALOG (messagebox), TRUE);
|
||||
}
|
||||
|
||||
/**
|
||||
* e_message_box_new:
|
||||
* @message: The message to be displayed.
|
||||
* @message_box_type: The type of the message
|
||||
* @...: A NULL terminated list of strings to use in each button.
|
||||
*
|
||||
* Creates a dialog box of type @message_box_type with @message. A number
|
||||
* of buttons are inserted on it. You can use the GNOME stock identifiers
|
||||
* to create gnome-stock-buttons.
|
||||
*
|
||||
* Returns a widget that has the dialog box.
|
||||
*/
|
||||
GtkWidget*
|
||||
e_message_box_new (const gchar *message,
|
||||
const gchar *message_box_type, ...)
|
||||
{
|
||||
va_list ap;
|
||||
EMessageBox *message_box;
|
||||
|
||||
g_return_val_if_fail (message != NULL, NULL);
|
||||
g_return_val_if_fail (message_box_type != NULL, NULL);
|
||||
|
||||
va_start (ap, message_box_type);
|
||||
|
||||
message_box = gtk_type_new (e_message_box_get_type ());
|
||||
|
||||
e_message_box_construct (message_box, message, message_box_type, NULL);
|
||||
|
||||
/* we need to add buttons by hand here */
|
||||
while (TRUE) {
|
||||
gchar * button_name;
|
||||
|
||||
button_name = va_arg (ap, gchar *);
|
||||
|
||||
if (button_name == NULL) {
|
||||
break;
|
||||
}
|
||||
|
||||
gnome_dialog_append_button (GNOME_DIALOG (message_box), button_name);
|
||||
}
|
||||
|
||||
va_end (ap);
|
||||
|
||||
gtk_widget_grab_focus (g_list_last (GNOME_DIALOG (message_box)->buttons)->data);
|
||||
|
||||
return GTK_WIDGET (message_box);
|
||||
}
|
||||
|
||||
/**
|
||||
* e_message_box_newv:
|
||||
* @message: The message to be displayed.
|
||||
* @message_box_type: The type of the message
|
||||
* @buttons: a NULL terminated array with the buttons to insert.
|
||||
*
|
||||
* Creates a dialog box of type @message_box_type with @message. A number
|
||||
* of buttons are inserted on it, the messages come from the @buttons array.
|
||||
* You can use the GNOME stock identifiers to create gnome-stock-buttons.
|
||||
* The buttons array can be NULL if you wish to add buttons yourself later.
|
||||
*
|
||||
* Returns a widget that has the dialog box.
|
||||
*/
|
||||
GtkWidget*
|
||||
e_message_box_newv (const gchar *message,
|
||||
const gchar *message_box_type,
|
||||
const gchar **buttons)
|
||||
{
|
||||
EMessageBox *message_box;
|
||||
|
||||
g_return_val_if_fail (message != NULL, NULL);
|
||||
g_return_val_if_fail (message_box_type != NULL, NULL);
|
||||
|
||||
message_box = gtk_type_new (e_message_box_get_type ());
|
||||
|
||||
e_message_box_construct (message_box, message,
|
||||
message_box_type, buttons);
|
||||
|
||||
return GTK_WIDGET (message_box);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* e_message_box_get_label:
|
||||
* @messagebox: The message box to work on
|
||||
*
|
||||
* Gets the label widget of the message box. You should use this
|
||||
* function instead of using the structure directly.
|
||||
*
|
||||
* Returns: the widget of the label with the message */
|
||||
GtkWidget *
|
||||
e_message_box_get_label (EMessageBox *messagebox)
|
||||
{
|
||||
g_return_val_if_fail (messagebox != NULL, NULL);
|
||||
g_return_val_if_fail (E_IS_MESSAGE_BOX (messagebox), NULL);
|
||||
|
||||
return messagebox->_priv->label;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* e_message_box_get_checkbox:
|
||||
* @messagebox: The message box to work on
|
||||
*
|
||||
* Gets the checkbox widget of the message box. You should use this
|
||||
* function instead of using the structure directly.
|
||||
*
|
||||
* Returns: the checkbox widget */
|
||||
GtkWidget *
|
||||
e_message_box_get_checkbox (EMessageBox *messagebox)
|
||||
{
|
||||
g_return_val_if_fail (messagebox != NULL, NULL);
|
||||
g_return_val_if_fail (E_IS_MESSAGE_BOX (messagebox), NULL);
|
||||
|
||||
return messagebox->_priv->checkbox;
|
||||
}
|
||||
@ -1,83 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||
/*
|
||||
* Original Author: Jay Painter
|
||||
* Modified: Jeffrey Stedfast
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2 of the GNU General Public
|
||||
* License as published by the Free Software Foundation.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __E_MESSAGE_BOX_H__
|
||||
#define __E_MESSAGE_BOX_H__
|
||||
|
||||
#warning "e_messagebox is deprecated, use gtk_message_box instead"
|
||||
|
||||
#include <glib.h>
|
||||
#include <gtk/gtkwidget.h>
|
||||
#include <libgnomeui/gnome-dialog.h>
|
||||
|
||||
#define E_TYPE_MESSAGE_BOX (e_message_box_get_type ())
|
||||
#define E_MESSAGE_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_MESSAGE_BOX, EMessageBox))
|
||||
#define E_MESSAGE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_MESSAGE_BOX, EMessageBoxClass))
|
||||
#define E_IS_MESSAGE_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_MESSAGE_BOX))
|
||||
#define E_IS_MESSAGE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), E_TYPE_MESSAGE_BOX))
|
||||
#define E_MESSAGE_BOX_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), E_TYPE_MESSAGE_BOX, EMessageBoxClass))
|
||||
|
||||
|
||||
#define E_MESSAGE_BOX_INFO "info"
|
||||
#define E_MESSAGE_BOX_WARNING "warning"
|
||||
#define E_MESSAGE_BOX_ERROR "error"
|
||||
#define E_MESSAGE_BOX_QUESTION "question"
|
||||
#define E_MESSAGE_BOX_GENERIC "generic"
|
||||
|
||||
|
||||
typedef struct _EMessageBox EMessageBox;
|
||||
typedef struct _EMessageBoxPrivate EMessageBoxPrivate;
|
||||
typedef struct _EMessageBoxClass EMessageBoxClass;
|
||||
typedef struct _EMessageBoxButton EMessageBoxButton;
|
||||
|
||||
struct _EMessageBox
|
||||
{
|
||||
GnomeDialog dialog;
|
||||
/*< private >*/
|
||||
EMessageBoxPrivate *_priv;
|
||||
};
|
||||
|
||||
struct _EMessageBoxClass
|
||||
{
|
||||
GnomeDialogClass parent_class;
|
||||
};
|
||||
|
||||
|
||||
GtkType e_message_box_get_type (void) G_GNUC_CONST;
|
||||
GtkWidget* e_message_box_new (const gchar *message,
|
||||
const gchar *messagebox_type,
|
||||
...);
|
||||
|
||||
GtkWidget* e_message_box_newv (const gchar *message,
|
||||
const gchar *messagebox_type,
|
||||
const gchar **buttons);
|
||||
|
||||
void e_message_box_construct (EMessageBox *messagebox,
|
||||
const gchar *message,
|
||||
const gchar *messagebox_type,
|
||||
const gchar **buttons);
|
||||
|
||||
GtkWidget *e_message_box_get_label (EMessageBox *messagebox);
|
||||
|
||||
GtkWidget *e_message_box_get_checkbox (EMessageBox *messagebox);
|
||||
|
||||
#endif /* __E_MESSAGE_BOX_H__ */
|
||||
Reference in New Issue
Block a user