aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/misc
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/misc')
-rw-r--r--widgets/misc/ChangeLog6
-rw-r--r--widgets/misc/e-charset-picker.c28
-rw-r--r--widgets/misc/e-charset-picker.h3
3 files changed, 34 insertions, 3 deletions
diff --git a/widgets/misc/ChangeLog b/widgets/misc/ChangeLog
index 49d671f1d2..5066477a8c 100644
--- a/widgets/misc/ChangeLog
+++ b/widgets/misc/ChangeLog
@@ -1,5 +1,11 @@
2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
+ * e-charset-picker.c (e_charset_picker_bonobo_ui_populate): Take a
+ callback function and user_data so that we can add listeners to
+ each of the menu items.
+
+2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
+
* Makefile.am: Updated to build e-charset-picker.c
* e-charset-picker.[c,h]: Moved here from gal.
diff --git a/widgets/misc/e-charset-picker.c b/widgets/misc/e-charset-picker.c
index b275930dfd..2ce6291e2c 100644
--- a/widgets/misc/e-charset-picker.c
+++ b/widgets/misc/e-charset-picker.c
@@ -356,9 +356,25 @@ e_charset_picker_dialog (const char *title, const char *prompt,
return charset;
}
-
+/**
+ * e_charset_picker_bonobo_ui_populate:
+ * @uic: Bonobo UI Component
+ * @default_charset: the default character set, or %NULL to use the
+ * locale character set.
+ * @cb: Callback function
+ * @user_data: data to be passed to the callback.
+ *
+ * This creates a Bonobo UI menu and fills it in with a selection
+ * of available character sets. The @default_charset (or locale character
+ * set if @default_charset is %NULL) will be listed first, and selected
+ * by default (except that iso-8859-1 will always be used instead of
+ * US-ASCII). Any other character sets of the same language class as
+ * the default will be listed next, followed by the remaining character
+ * sets.
+ **/
void
-e_charset_picker_bonobo_ui_populate (BonoboUIComponent *uic, const char *default_charset)
+e_charset_picker_bonobo_ui_populate (BonoboUIComponent *uic, const char *default_charset,
+ BonoboUIListenerFn cb, gpointer user_data)
{
char *locale_charset, *encoded_label, *label;
GString *menuitems;
@@ -410,6 +426,10 @@ e_charset_picker_bonobo_ui_populate (BonoboUIComponent *uic, const char *default
charsets[i].name);
g_free (encoded_label);
+
+ label = g_strdup_printf ("Charset-%s", charsets[i].name);
+ bonobo_ui_component_add_listener (uic, label, cb, user_data);
+ g_free (label);
}
if (def == num_charsets) {
@@ -431,6 +451,10 @@ e_charset_picker_bonobo_ui_populate (BonoboUIComponent *uic, const char *default
default_charset);
g_free (encoded_label);
+
+ label = g_strdup_printf ("Charset-%s", default_charset);
+ bonobo_ui_component_add_listener (uic, label, cb, user_data);
+ g_free (label);
}
g_string_append (menuitems, "</submenu>\n");
diff --git a/widgets/misc/e-charset-picker.h b/widgets/misc/e-charset-picker.h
index 0fa6e5e0a1..352c09baee 100644
--- a/widgets/misc/e-charset-picker.h
+++ b/widgets/misc/e-charset-picker.h
@@ -38,7 +38,8 @@ char *e_charset_picker_dialog (const char *title, const char *prompt,
GtkWindow *parent);
/* bonobo equivalents */
-void e_charset_picker_bonobo_ui_populate (BonoboUIComponent *uic, const char *default_charset);
+void e_charset_picker_bonobo_ui_populate (BonoboUIComponent *uic, const char *default_charset,
+ BonoboUIListenerFn cb, gpointer user_data);
#ifdef __cplusplus
}