A bunch of fixes to make e-util build with -DG_DISABLE_DEPRECATED and

2003-01-02  Jeffrey Stedfast  <fejj@ximian.com>

	A bunch of fixes to make e-util build with -DG_DISABLE_DEPRECATED
	and -DGTK_DISABLE_DEPRECATED.

svn path=/trunk/; revision=19210
This commit is contained in:
Jeffrey Stedfast
2003-01-02 21:32:14 +00:00
committed by Jeffrey Stedfast
parent 84c85d8eb7
commit 64ea8d10a8
8 changed files with 205 additions and 234 deletions

View File

@ -1,3 +1,8 @@
2003-01-02 Jeffrey Stedfast <fejj@ximian.com>
A bunch of fixes to make e-util build with -DG_DISABLE_DEPRECATED
and -DGTK_DISABLE_DEPRECATED.
2003-01-02 Ettore Perazzoli <ettore@ximian.com>
* e-gtk-utils.c (e_signal_connect_full_while_alive): Get to

View File

@ -11,6 +11,8 @@ INCLUDES = \
-DEVOLUTION_IMAGES=\""$(imagesdir)"\" \
-DEVOLUTION_CATEGORY_ICONS=\""$(imagesdir)/categories"\" \
-DG_LOG_DOMAIN=\"e-utils\" \
-DG_DISABLE_DEPRECATED \
-DGTK_DISABLE_DEPRECATED \
$(DB3_CFLAGS) \
$(PISOCK_CFLAGS) \
$(E_UTIL_CFLAGS)

View File

@ -12,7 +12,6 @@
#include <libgnomeui/gnome-dialog.h>
#include <libgnome/gnome-i18n.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gal/widgets/e-unicode.h>
#include <gal/widgets/e-categories.h>
#include "e-categories-config.h"
#include "e-categories-master-list-wombat.h"
@ -176,34 +175,34 @@ e_categories_config_set_icon_for (const char *category, const char *icon_file)
void
e_categories_config_open_dialog_for_entry (GtkEntry *entry)
{
char *categories;
GnomeDialog *dialog;
const char *text;
char *categories;
int result;
g_return_if_fail (entry != NULL);
g_return_if_fail (GTK_IS_ENTRY (entry));
if (!initialized)
initialize_categories_config ();
categories = e_utf8_gtk_entry_get_text (GTK_ENTRY (entry));
dialog = GNOME_DIALOG (e_categories_new (categories));
text = gtk_entry_get_text (GTK_ENTRY (entry));
dialog = GNOME_DIALOG (e_categories_new (text));
gtk_object_set (GTK_OBJECT (dialog),
"ecml", ecmlw,
NULL);
/* run the dialog */
result = gnome_dialog_run (dialog);
g_free (categories);
if (result == 0) {
gtk_object_get (GTK_OBJECT (dialog),
"categories", &categories,
NULL);
e_utf8_gtk_entry_set_text (GTK_ENTRY (entry), categories);
gtk_entry_set_text (GTK_ENTRY (entry), categories);
g_free (categories);
}
gtk_object_destroy (GTK_OBJECT (dialog));
}

View File

@ -52,9 +52,9 @@ transient_realize_callback (GtkWidget *widget)
{
GdkWindow *window;
window = gtk_object_get_data (GTK_OBJECT (widget), TRANSIENT_DATA_ID);
window = g_object_get_data ((GObject *) widget, TRANSIENT_DATA_ID);
g_assert (window != NULL);
gdk_window_set_transient_for (GTK_WIDGET (widget)->window, window);
}
@ -63,18 +63,18 @@ transient_unrealize_callback (GtkWidget *widget)
{
GdkWindow *window;
window = gtk_object_get_data (GTK_OBJECT (widget), TRANSIENT_DATA_ID);
window = g_object_get_data ((GObject *) widget, TRANSIENT_DATA_ID);
g_assert (window != NULL);
gdk_property_delete (window, gdk_atom_intern ("WM_TRANSIENT_FOR", FALSE));
}
static void
transient_destroy_callback (GtkWidget *widget)
transient_destroy_callback (GtkWidget *widget, GObject *deadbeef)
{
GdkWindow *window;
window = gtk_object_get_data (GTK_OBJECT (widget), "transient");
window = g_object_get_data ((GObject *) widget, "transient");
if (window != NULL)
gdk_window_unref (window);
}
@ -84,32 +84,28 @@ set_transient_for_gdk (GtkWindow *window,
GdkWindow *parent)
{
g_return_if_fail (window != NULL);
g_return_if_fail (gtk_object_get_data (GTK_OBJECT (window), TRANSIENT_DATA_ID) == NULL);
g_return_if_fail (g_object_get_data ((GObject *) window, TRANSIENT_DATA_ID) == NULL);
/* if the parent window doesn't exist anymore,
* something is probably about to go very wrong,
* but at least let's not segfault here. */
if (parent == NULL) {
g_warning ("set_transient_for_gdk: uhoh, parent of window %p is NULL", window);
return;
}
gdk_window_ref (parent); /* FIXME? */
gtk_object_set_data (GTK_OBJECT (window), TRANSIENT_DATA_ID, parent);
g_object_set_data ((GObject *) window, TRANSIENT_DATA_ID, parent);
if (GTK_WIDGET_REALIZED (window))
gdk_window_set_transient_for (GTK_WIDGET (window)->window, parent);
gtk_signal_connect (GTK_OBJECT (window), "realize",
GTK_SIGNAL_FUNC (transient_realize_callback), NULL);
gtk_signal_connect (GTK_OBJECT (window), "unrealize",
GTK_SIGNAL_FUNC (transient_unrealize_callback), NULL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (transient_destroy_callback), NULL);
g_signal_connect (window, "realize", G_CALLBACK (transient_realize_callback), NULL);
g_signal_connect (window, "unrealize", G_CALLBACK (transient_unrealize_callback), NULL);
g_object_weak_ref ((GObject *) window, (GWeakNotify) transient_destroy_callback, window);
}
@ -181,7 +177,7 @@ e_set_dialog_parent_from_xid (GtkWindow *dialog,
}
static void
e_gnome_dialog_parent_destroyed (GtkWidget *parent, GtkWidget *dialog)
e_gnome_dialog_parent_destroyed (GnomeDialog *dialog, GObject *deadbeef)
{
gnome_dialog_close (GNOME_DIALOG (dialog));
}
@ -190,9 +186,7 @@ void
e_gnome_dialog_set_parent (GnomeDialog *dialog, GtkWindow *parent)
{
gnome_dialog_set_parent (dialog, parent);
gtk_signal_connect_while_alive (GTK_OBJECT (parent), "destroy",
e_gnome_dialog_parent_destroyed,
dialog, GTK_OBJECT (dialog));
g_object_weak_ref ((GObject *) parent, (GWeakNotify) e_gnome_dialog_parent_destroyed, dialog);
}
GtkWidget *
@ -201,8 +195,7 @@ e_gnome_warning_dialog_parented (const char *warning, GtkWindow *parent)
GtkWidget *dialog;
dialog = gnome_warning_dialog_parented (warning, parent);
gtk_signal_connect_while_alive (GTK_OBJECT (parent), "destroy",
e_gnome_dialog_parent_destroyed, dialog, GTK_OBJECT(dialog));
g_object_weak_ref ((GObject *) parent, (GWeakNotify) e_gnome_dialog_parent_destroyed, dialog);
return dialog;
}
@ -214,8 +207,7 @@ e_gnome_ok_cancel_dialog_parented (const char *message, GnomeReplyCallback callb
GtkWidget *dialog;
dialog = gnome_ok_cancel_dialog_parented (message, callback, data, parent);
gtk_signal_connect_while_alive (GTK_OBJECT (parent), "destroy",
e_gnome_dialog_parent_destroyed, dialog, GTK_OBJECT(dialog));
g_object_weak_ref ((GObject *) parent, (GWeakNotify) e_gnome_dialog_parent_destroyed, dialog);
return dialog;
}
@ -227,21 +219,21 @@ save_ok (GtkWidget *widget, gpointer data)
char **filename = data;
const char *path;
int btn = GNOME_YES;
fs = gtk_widget_get_toplevel (widget);
path = gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs));
if (g_file_test (path, G_FILE_TEST_IS_REGULAR)) {
GtkWidget *dlg;
dlg = gnome_question_dialog_modal (_("A file by that name already exists.\n"
"Overwrite it?"), NULL, NULL);
btn = gnome_dialog_run_and_close (GNOME_DIALOG (dlg));
}
if (btn == GNOME_YES)
*filename = g_strdup (path);
gtk_main_quit ();
}
@ -250,23 +242,21 @@ e_file_dialog_save (const char *title)
{
GtkFileSelection *fs;
char *path, *filename = NULL;
fs = GTK_FILE_SELECTION (gtk_file_selection_new (title));
path = g_strdup_printf ("%s/", g_get_home_dir ());
gtk_file_selection_set_filename (fs, path);
g_free (path);
gtk_signal_connect (GTK_OBJECT (fs->ok_button), "clicked",
GTK_SIGNAL_FUNC (save_ok), &filename);
gtk_signal_connect (GTK_OBJECT (fs->cancel_button), "clicked",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
g_signal_connect (fs->ok_button, "clicked", G_CALLBACK (save_ok), &filename);
g_signal_connect (fs->cancel_button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_show (GTK_WIDGET (fs));
gtk_grab_add (GTK_WIDGET (fs));
gtk_main ();
gtk_widget_destroy (GTK_WIDGET (fs));
return filename;
}

View File

@ -33,7 +33,6 @@
#include <gtk/gtkspinbutton.h>
#include <libgnomeui/gnome-dateedit.h>
#include <libgnomeui/gnome-propertybox.h>
#include <gal/widgets/e-unicode.h>
#include "e-dialog-widgets.h"
@ -55,17 +54,13 @@ typedef struct {
/* Destroy handler for the dialog; frees the dialog hooks */
static void
dialog_destroy_cb (GtkObject *dialog, gpointer data)
dialog_destroy_cb (DialogHooks *hooks, GObject *dialog)
{
DialogHooks *hooks;
hooks = data;
g_slist_free (hooks->whooks);
hooks->whooks = NULL;
g_free (hooks);
gtk_object_set_data (dialog, "dialog-hooks", NULL);
g_object_set_data (dialog, "dialog-hooks", NULL);
}
/* Ensures that the dialog has the necessary attached data to store the widget
@ -75,15 +70,14 @@ static DialogHooks *
get_dialog_hooks (GtkWidget *dialog)
{
DialogHooks *hooks;
hooks = gtk_object_get_data (GTK_OBJECT (dialog), "dialog-hooks");
hooks = g_object_get_data ((GObject *) dialog, "dialog-hooks");
if (!hooks) {
hooks = g_new0 (DialogHooks, 1);
gtk_object_set_data (GTK_OBJECT (dialog), "dialog-hooks", hooks);
gtk_signal_connect (GTK_OBJECT (dialog), "destroy",
GTK_SIGNAL_FUNC (dialog_destroy_cb), hooks);
g_object_set_data ((GObject *) dialog, "dialog-hooks", hooks);
g_object_weak_ref ((GObject *) dialog, (GWeakNotify) dialog_destroy_cb, hooks);
}
return hooks;
}
@ -94,11 +88,11 @@ static int
value_to_index (const int *value_map, int value)
{
int i;
for (i = 0; value_map[i] != -1; i++)
if (value_map[i] == value)
return i;
return -1;
}
@ -109,15 +103,15 @@ static int
index_to_value (const int *value_map, int index)
{
int i;
/* We do this the hard way, i.e. not as a simple array reference, to
* check for correctness.
*/
for (i = 0; value_map[i] != -1; i++)
if (i == index)
return value_map[i];
return -1;
}
@ -126,9 +120,9 @@ static void
toggled_cb (GtkToggleButton *toggle, gpointer data)
{
GnomePropertyBox *pbox;
pbox = GNOME_PROPERTY_BOX (data);
/* For radio buttons, we only notify the property box if the button is
* active, because we'll get one call for each of the changed buttons in
* the radio group.
@ -141,26 +135,24 @@ toggled_cb (GtkToggleButton *toggle, gpointer data)
static void
hook_radio (GtkWidget *dialog, GtkRadioButton *radio, gpointer value_var, gpointer info)
{
GSList *group;
GSList *l;
int *value;
const int *value_map;
group = gtk_radio_button_group (radio);
GSList *group, *l;
int *value;
group = gtk_radio_button_get_group (radio);
/* Set the value */
value = (int *) value_var;
value_map = (const int *) info;
e_dialog_radio_set (GTK_WIDGET (radio), *value, value_map);
/* Hook to changed */
if (GNOME_IS_PROPERTY_BOX (dialog))
for (l = group; l; l = l->next)
gtk_signal_connect (GTK_OBJECT (l->data), "toggled",
GTK_SIGNAL_FUNC (toggled_cb), dialog);
g_signal_connect (l->data, "toggled", G_CALLBACK (toggled_cb), dialog);
}
/* Gets the value of a radio button group */
@ -169,10 +161,10 @@ get_radio_value (GtkRadioButton *radio, gpointer value_var, gpointer info)
{
int *value;
const int *value_map;
value = (int *) value_var;
value_map = (const int *) info;
*value = e_dialog_radio_get (GTK_WIDGET (radio), value_map);
}
@ -181,7 +173,7 @@ static void
activate_cb (GtkMenuItem *item, gpointer data)
{
GnomePropertyBox *pbox;
pbox = GNOME_PROPERTY_BOX (data);
gnome_property_box_changed (pbox);
}
@ -190,27 +182,26 @@ activate_cb (GtkMenuItem *item, gpointer data)
static void
hook_option_menu (GtkWidget *dialog, GtkOptionMenu *omenu, gpointer value_var, gpointer info)
{
int *value;
const int *value_map;
int *value;
/* Set the value */
value = (int *) value_var;
value_map = (const int *) info;
e_dialog_option_menu_set (GTK_WIDGET (omenu), *value, value_map);
/* Hook to changed */
if (GNOME_IS_PROPERTY_BOX (dialog)) {
GtkMenu *menu;
GList *l;
menu = GTK_MENU (gtk_option_menu_get_menu (omenu));
for (l = GTK_MENU_SHELL (menu)->children; l; l = l->next)
gtk_signal_connect (GTK_OBJECT (l->data), "activate",
GTK_SIGNAL_FUNC (activate_cb), dialog);
g_signal_connect (l->data, "activate", G_CALLBACK (activate_cb), dialog);
}
}
@ -218,12 +209,12 @@ hook_option_menu (GtkWidget *dialog, GtkOptionMenu *omenu, gpointer value_var, g
static void
get_option_menu_value (GtkOptionMenu *omenu, gpointer value_var, gpointer info)
{
int *value;
const int *value_map;
int *value;
value = (int *) value_var;
value_map = (const int *) info;
*value = e_dialog_option_menu_get (GTK_WIDGET (omenu), value_map);
}
@ -232,17 +223,16 @@ static void
hook_toggle (GtkWidget *dialog, GtkToggleButton *toggle, gpointer value_var, gpointer info)
{
gboolean *value;
/* Set the value */
value = (gboolean *) value_var;
e_dialog_toggle_set (GTK_WIDGET (toggle), *value);
/* Hook to changed */
if (GNOME_IS_PROPERTY_BOX (dialog))
gtk_signal_connect (GTK_OBJECT (toggle), "toggled",
GTK_SIGNAL_FUNC (toggled_cb), dialog);
g_signal_connect (toggle, "toggled", G_CALLBACK (toggled_cb), dialog);
}
/* Gets the value of a toggle button */
@ -250,7 +240,7 @@ static void
get_toggle_value (GtkToggleButton *toggle, gpointer value_var, gpointer info)
{
gboolean *value;
value = (gboolean *) value_var;
*value = e_dialog_toggle_get (GTK_WIDGET (toggle));
}
@ -260,7 +250,7 @@ static void
value_changed_cb (GtkAdjustment *adj, gpointer data)
{
GnomePropertyBox *pbox;
pbox = GNOME_PROPERTY_BOX (data);
gnome_property_box_changed (pbox);
}
@ -271,19 +261,18 @@ hook_spin_button (GtkWidget *dialog, GtkSpinButton *spin, gpointer value_var, gp
{
double *value;
GtkAdjustment *adj;
/* Set the value */
value = (double *) value_var;
e_dialog_spin_set (GTK_WIDGET (spin), *value);
/* Hook to changed */
adj = gtk_spin_button_get_adjustment (spin);
if (GNOME_IS_PROPERTY_BOX (dialog))
gtk_signal_connect (GTK_OBJECT (adj), "value_changed",
GTK_SIGNAL_FUNC (value_changed_cb), dialog);
g_signal_connect (adj, "value_changed", G_CALLBACK (value_changed_cb), dialog);
}
/* Gets the value of a spin button */
@ -291,7 +280,7 @@ static void
get_spin_button_value (GtkSpinButton *spin, gpointer value_var, gpointer info)
{
double *value;
value = (double *) value_var;
*value = e_dialog_spin_get_double (GTK_WIDGET (spin));
}
@ -301,7 +290,7 @@ static void
changed_cb (GtkEditable *editable, gpointer data)
{
GnomePropertyBox *pbox;
pbox = GNOME_PROPERTY_BOX (data);
gnome_property_box_changed (pbox);
}
@ -311,18 +300,17 @@ static void
hook_editable (GtkWidget *dialog, GtkEditable *editable, gpointer value_var, gpointer info)
{
char **value;
/* Set the value */
value = (char **) value_var;
e_dialog_editable_set (GTK_WIDGET (editable), *value);
/* Hook to changed */
if (GNOME_IS_PROPERTY_BOX (dialog))
gtk_signal_connect (GTK_OBJECT (editable), "changed",
GTK_SIGNAL_FUNC (changed_cb), dialog);
g_signal_connect (editable, "changed", G_CALLBACK (changed_cb), dialog);
}
/* Gets the value of a GtkEditable widget */
@ -330,11 +318,11 @@ static void
get_editable_value (GtkEditable *editable, gpointer value_var, gpointer data)
{
char **value;
value = (char **) value_var;
if (*value)
g_free (*value);
*value = e_dialog_editable_get (GTK_WIDGET (editable));
}
@ -348,17 +336,15 @@ get_editable_value (GtkEditable *editable, gpointer value_var, gpointer data)
void
e_dialog_editable_set (GtkWidget *widget, const char *value)
{
int pos = 0;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_EDITABLE (widget));
gtk_editable_delete_text (GTK_EDITABLE (widget), 0, -1);
if (value) {
gint pos;
pos = 0;
e_utf8_gtk_editable_insert_text (GTK_EDITABLE (widget), value, strlen (value), &pos);
}
if (value)
gtk_editable_insert_text (GTK_EDITABLE (widget), value, strlen (value), &pos);
}
/**
@ -376,8 +362,8 @@ e_dialog_editable_get (GtkWidget *widget)
{
g_return_val_if_fail (widget != NULL, NULL);
g_return_val_if_fail (GTK_IS_EDITABLE (widget), NULL);
return e_utf8_gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1);
return gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1);
}
/**
@ -397,32 +383,29 @@ e_dialog_editable_get (GtkWidget *widget)
void
e_dialog_radio_set (GtkWidget *widget, int value, const int *value_map)
{
GSList *group;
GSList *group, *l;
int i;
GSList *l;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_RADIO_BUTTON (widget));
g_return_if_fail (value_map != NULL);
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
i = value_to_index (value_map, value);
if (i != -1) {
/* Groups are built by prepending items, so the list ends up in reverse
* order; we need to flip the index around.
*/
i = g_slist_length (group) - i - 1;
l = g_slist_nth (group, i);
if (!l)
g_message ("e_dialog_radio_set(): could not find index %d in radio group!",
i);
g_message ("e_dialog_radio_set(): could not find index %d in radio group!", i);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (l->data), TRUE);
} else
g_message ("e_dialog_radio_set(): could not find value %d in value map!",
value);
g_message ("e_dialog_radio_set(): could not find value %d in value map!", value);
}
/**
@ -440,38 +423,35 @@ e_dialog_radio_set (GtkWidget *widget, int value, const int *value_map)
int
e_dialog_radio_get (GtkWidget *widget, const int *value_map)
{
GSList *group;
GSList *l;
int i;
int v;
GSList *group, *l;
int i, v;
g_return_val_if_fail (widget != NULL, -1);
g_return_val_if_fail (GTK_IS_RADIO_BUTTON (widget), -1);
g_return_val_if_fail (value_map != NULL, -1);
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
for (i = 0, l = group; l; l = l->next, i++) {
widget = GTK_WIDGET (l->data);
if (GTK_TOGGLE_BUTTON (widget)->active)
break;
}
if (!l)
g_assert_not_reached ();
g_assert (l != NULL);
/* Groups are built by prepending items, so the list ends up in reverse
* order; we need to flip the index around.
*/
i = g_slist_length (group) - i - 1;
v = index_to_value (value_map, i);
if (v == -1) {
g_message ("e_dialog_radio_get(): could not find index %d in value map!", i);
return -1;
}
return v;
}
@ -489,7 +469,7 @@ e_dialog_toggle_set (GtkWidget *widget, gboolean value)
{
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_TOGGLE_BUTTON (widget));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
}
@ -508,7 +488,7 @@ e_dialog_toggle_get (GtkWidget *widget)
{
g_return_val_if_fail (widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_TOGGLE_BUTTON (widget), FALSE);
return GTK_TOGGLE_BUTTON (widget)->active;
}
@ -523,14 +503,14 @@ void
e_dialog_spin_set (GtkWidget *widget, double value)
{
GtkAdjustment *adj;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_SPIN_BUTTON (widget));
adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
adj->value = value;
gtk_signal_emit_by_name (GTK_OBJECT (adj), "value_changed");
g_signal_emit_by_name (adj, "value_changed", 0);
}
/**
@ -545,10 +525,10 @@ double
e_dialog_spin_get_double (GtkWidget *widget)
{
GtkAdjustment *adj;
g_return_val_if_fail (widget != NULL, 0.0);
g_return_val_if_fail (GTK_IS_SPIN_BUTTON (widget), 0.0);
adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
return adj->value;
}
@ -565,10 +545,10 @@ int
e_dialog_spin_get_int (GtkWidget *widget)
{
double value;
g_return_val_if_fail (widget != NULL, -1);
g_return_val_if_fail (GTK_IS_SPIN_BUTTON (widget), -1);
value = e_dialog_spin_get_double (widget);
return (int) floor (value);
}
@ -587,13 +567,13 @@ void
e_dialog_option_menu_set (GtkWidget *widget, int value, const int *value_map)
{
int i;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_OPTION_MENU (widget));
g_return_if_fail (value_map != NULL);
i = value_to_index (value_map, value);
if (i != -1)
gtk_option_menu_set_history (GTK_OPTION_MENU (widget), i);
else
@ -622,32 +602,31 @@ e_dialog_option_menu_get (GtkWidget *widget, const int *value_map)
GList *l;
int i;
int v;
g_return_val_if_fail (widget != NULL, -1);
g_return_val_if_fail (GTK_IS_OPTION_MENU (widget), -1);
g_return_val_if_fail (value_map != NULL, -1);
menu = GTK_MENU (gtk_option_menu_get_menu (GTK_OPTION_MENU (widget)));
active = gtk_menu_get_active (menu);
g_assert (active != NULL);
children = GTK_MENU_SHELL (menu)->children;
for (i = 0, l = children; l; l = l->next, i++) {
if (GTK_WIDGET (l->data) == active)
break;
}
if (!l)
g_assert_not_reached ();
g_assert (l != NULL);
v = index_to_value (value_map, i);
if (v == -1) {
g_message ("e_dialog_option_menu_get(): could not find index %d in value map!", i);
return -1;
}
return v;
}
@ -663,7 +642,7 @@ e_dialog_dateedit_set (GtkWidget *widget, time_t t)
{
g_return_if_fail (widget != NULL);
g_return_if_fail (GNOME_IS_DATE_EDIT (widget));
gnome_date_edit_set_time (GNOME_DATE_EDIT (widget), t);
}
@ -680,7 +659,7 @@ e_dialog_dateedit_get (GtkWidget *widget)
{
g_return_val_if_fail (widget != NULL, -1);
g_return_val_if_fail (GNOME_IS_DATE_EDIT (widget), -1);
return gnome_date_edit_get_date (GNOME_DATE_EDIT (widget));
}
@ -719,18 +698,18 @@ e_dialog_widget_hook_value (GtkWidget *dialog, GtkWidget *widget,
{
DialogHooks *hooks;
WidgetHook *wh;
g_return_val_if_fail (dialog != NULL, FALSE);
g_return_val_if_fail (widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
g_return_val_if_fail (value_var != NULL, FALSE);
hooks = get_dialog_hooks (dialog);
/* First check if it is a "group" widget, like a radio button or an
* option menu. Then we check for normal ungrouped widgets.
*/
if (GTK_IS_RADIO_BUTTON (widget))
hook_radio (dialog, GTK_RADIO_BUTTON (widget), value_var, info);
else if (GTK_IS_OPTION_MENU (widget))
@ -743,14 +722,14 @@ e_dialog_widget_hook_value (GtkWidget *dialog, GtkWidget *widget,
hook_editable (dialog, GTK_EDITABLE (widget), value_var, info);
else
return FALSE;
wh = g_new (WidgetHook, 1);
wh->widget = widget;
wh->value_var = value_var;
wh->info = info;
hooks->whooks = g_slist_prepend (hooks->whooks, wh);
return TRUE;
}
@ -769,16 +748,16 @@ e_dialog_get_values (GtkWidget *dialog)
{
DialogHooks *hooks;
GSList *l;
g_return_if_fail (dialog != NULL);
hooks = get_dialog_hooks (dialog);
for (l = hooks->whooks; l; l = l->next) {
WidgetHook *wh;
wh = l->data;
if (GTK_IS_RADIO_BUTTON (wh->widget))
get_radio_value (GTK_RADIO_BUTTON (wh->widget), wh->value_var, wh->info);
else if (GTK_IS_OPTION_MENU (wh->widget))
@ -814,19 +793,19 @@ e_dialog_xml_widget_hook_value (GladeXML *xml, GtkWidget *dialog, const char *wi
gpointer value_var, gpointer info)
{
GtkWidget *widget;
g_return_val_if_fail (xml != NULL, FALSE);
g_return_val_if_fail (GLADE_IS_XML (xml), FALSE);
g_return_val_if_fail (dialog != NULL, FALSE);
g_return_val_if_fail (widget_name != NULL, FALSE);
g_return_val_if_fail (value_var != NULL, FALSE);
widget = glade_xml_get_widget (xml, widget_name);
if (!widget) {
g_message ("e_dialog_xml_widget_hook_value(): could not find widget `%s' in "
"Glade data!", widget_name);
return FALSE;
}
return e_dialog_widget_hook_value (dialog, widget, value_var, info);
}

View File

@ -71,10 +71,10 @@ alive_disconnecter (GtkObject *object,
DisconnectInfo *info)
{
g_assert (info != NULL);
gtk_signal_disconnect (info->object1, info->disconnect_handler1);
gtk_signal_disconnect (info->object1, info->signal_handler);
gtk_signal_disconnect (info->object2, info->disconnect_handler2);
g_signal_handler_disconnect (info->object1, info->disconnect_handler1);
g_signal_handler_disconnect (info->object1, info->signal_handler);
g_signal_handler_disconnect (info->object2, info->disconnect_handler2);
g_free (info);
@ -122,12 +122,12 @@ e_signal_connect_full_while_alive (void *instance,
instance_signal, after);
info->object1 = instance;
info->disconnect_handler1 = gtk_signal_connect (instance, "destroy",
GTK_SIGNAL_FUNC (alive_disconnecter), info);
info->disconnect_handler1 = g_signal_connect (instance, "destroy",
G_CALLBACK (alive_disconnecter), info);
info->object2 = alive_instance;
info->disconnect_handler2 = gtk_signal_connect (alive_instance, "destroy",
GTK_SIGNAL_FUNC (alive_disconnecter), info);
info->disconnect_handler2 = g_signal_connect (alive_instance, "destroy",
G_CALLBACK (alive_disconnecter), info);
}
@ -165,6 +165,5 @@ widget_realize_callback_for_backing_store (GtkWidget *widget,
void
e_make_widget_backing_stored (GtkWidget *widget)
{
gtk_signal_connect (GTK_OBJECT (widget), "realize",
GTK_SIGNAL_FUNC (widget_realize_callback_for_backing_store), NULL);
g_signal_connect (widget, "realize", G_CALLBACK (widget_realize_callback_for_backing_store), NULL);
}

View File

@ -65,7 +65,7 @@ get_path (gboolean make)
GString *path;
path = g_string_new ("/tmp/evolution-");
g_string_sprintfa (path, "%d-%d", (int) getuid (), (int) getpid ());
g_string_append_printf (path, "%d-%d", (int) getuid (), (int) getpid ());
if (make) {
int ret;

View File

@ -27,7 +27,6 @@
#include "e-request.h"
#include <libgnomeui/gnome-dialog.h>
#include <gal/widgets/e-unicode.h>
#include <gtk/gtklabel.h>
#include <gtk/gtkentry.h>
@ -52,53 +51,51 @@ e_request_string (GtkWindow *parent,
const char *prompt,
const char *default_string)
{
GtkWidget *dialog;
GtkWidget *prompt_label;
const char *text = NULL;
GtkWidget *dialog;
GtkWidget *entry;
GtkWidget *vbox;
char *retval;
g_return_val_if_fail (title != NULL, NULL);
g_return_val_if_fail (prompt != NULL, NULL);
dialog = gnome_dialog_new (title, GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_CANCEL, NULL);
gnome_dialog_set_parent (GNOME_DIALOG (dialog), parent);
gnome_dialog_set_default (GNOME_DIALOG (dialog), 0);
gnome_dialog_close_hides (GNOME_DIALOG (dialog), TRUE);
vbox = GNOME_DIALOG (dialog)->vbox;
prompt_label = gtk_label_new (prompt);
gtk_box_pack_start (GTK_BOX (vbox), prompt_label, TRUE, TRUE, 0);
entry = gtk_entry_new ();
e_utf8_gtk_entry_set_text (GTK_ENTRY (entry), default_string);
gtk_entry_set_text (GTK_ENTRY (entry), default_string);
gtk_entry_select_region (GTK_ENTRY (entry), 0, -1);
gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0);
gtk_widget_grab_focus (entry);
gnome_dialog_editable_enters (GNOME_DIALOG (dialog), GTK_EDITABLE (entry));
gtk_widget_show (prompt_label);
gtk_widget_show (entry);
gtk_widget_show (dialog);
switch (gnome_dialog_run (GNOME_DIALOG (dialog))) {
case 0:
/* OK. */
retval = e_utf8_gtk_entry_get_text (GTK_ENTRY (entry));
text = gtk_entry_get_text (GTK_ENTRY (entry));
break;
case -1:
case 1:
/* Cancel. */
retval = NULL;
break;
default:
g_assert_not_reached ();
retval = NULL;
}
gtk_widget_destroy (dialog);
return retval;
return text ? g_strdup (text) : NULL;
}