gtk/plugins/perl/common/GtkPrefs.xs

Sun, 17 Sep 2006 05:35:46 +0000

author
Etan Reisner <deryni@pidgin.im>
date
Sun, 17 Sep 2006 05:35:46 +0000
changeset 14629
1a0cd727c121
parent 14500
a3dd48b8606a
child 14641
a55ef032e889
permissions
-rw-r--r--

[gaim-migrate @ 17291]
This is a really huge commit for basically nothing, I decided that Gaim::Gtk
should really be Gaim::GtkUI (which will line up better with any eventual
Gaim::GntUI that might exist, etc.). So that's what this is, I think I got
everything, it builds here at least.

14478
a6b831ab1d13 [gaim-migrate @ 17124]
Etan Reisner <deryni@pidgin.im>
parents:
diff changeset
1 #include "gtkmodule.h"
a6b831ab1d13 [gaim-migrate @ 17124]
Etan Reisner <deryni@pidgin.im>
parents:
diff changeset
2
14500
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
3 /* This can't work at the moment since I don't have a typemap for Gtk::Widget.
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
4 * I thought about using the one from libgtk2-perl but wasn't sure how to go
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
5 * about doing that.
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
6 Gtk::Widget
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
7 gaim_gtk_prefs_checkbox(title, key, page)
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
8 const char * title
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
9 const char * key
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
10 Gtk::Widget page
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
11
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
12 Gtk::Widget
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
13 gaim_gtk_prefs_labeled_spin_button(page, title, key, min, max, sg)
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
14 Gtk::Widget page
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
15 const gchar * title
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
16 const char * key
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
17 int min
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
18 int max
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
19 Gtk::Size::Group sg
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
20
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
21 Gtk::Widget
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
22 gaim_gtk_prefs_labeled_entry(page, title, key, sg)
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
23 Gtk::Widget page
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
24 const gchar * title
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
25 const char * key
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
26 Gtk::Size::Group sg
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
27
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
28 TODO Test this carefully, I'm not at all confident in the loop.
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
29 Gtk::Widget
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
30 gaim_gtk_prefs_dropdown(page, title, type, key, ...)
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
31 Gtk::Widget page
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
32 const gchar * title
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
33 Gaim::Pref::Type type
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
34 const char * key
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
35 PREINIT:
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
36 GList *t_GL;
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
37 int i;
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
38 CODE:
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
39 t_GL = NULL;
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
40 for (i = 0; i < items; i++) {
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
41 if (type == GAIM_PREF_INT || type == GAIM_PREF_BOOLEAN) {
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
42 t_GL = g_list_append(t_GL, SvIV(ST(i+1)));
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
43 else {
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
44 t_GL = g_list_append(t_GL, SvPV(ST(i+1)));
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
45 }
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
46 }
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
47
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
48 Gtk::Widget
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
49 gaim_gtk_prefs_dropdown_from_list(page, title, type, key, menuitems)
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
50 Gtk::Widget page
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
51 const gchar * title
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
52 Gaim::Pref::Type type
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
53 const char * key
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
54 SV *menuitems
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
55 PREINIT:
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
56 GList *t_GL;
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
57 int i, t_len;
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
58 CODE:
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
59 t_GL = NULL;
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
60 t_len = av_len((AV *)SvRV(menuitems));
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
61
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
62 for ( i = 0; i < t_len; i++) {
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
63 STRLEN t_sl;
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
64 t_GL = g_list_append(t_GL, SvPV(*av_fetch((AV *)SvRV(menuitems), i, 0), t_sl));
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
65 RETVAL = gaim_gtk_prefs_dropdown_from_list(page, title, type, key, t_GL);
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
66 OUTPUT:
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
67 RETVAL
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
68 */
a3dd48b8606a [gaim-migrate @ 17152]
Etan Reisner <deryni@pidgin.im>
parents: 14478
diff changeset
69
14629
1a0cd727c121 [gaim-migrate @ 17291]
Etan Reisner <deryni@pidgin.im>
parents: 14500
diff changeset
70 MODULE = Gaim::GtkUI::Prefs PACKAGE = Gaim::GtkUI::Prefs PREFIX = gaim_gtk_prefs_
14478
a6b831ab1d13 [gaim-migrate @ 17124]
Etan Reisner <deryni@pidgin.im>
parents:
diff changeset
71 PROTOTYPES: ENABLE
a6b831ab1d13 [gaim-migrate @ 17124]
Etan Reisner <deryni@pidgin.im>
parents:
diff changeset
72
a6b831ab1d13 [gaim-migrate @ 17124]
Etan Reisner <deryni@pidgin.im>
parents:
diff changeset
73 void
a6b831ab1d13 [gaim-migrate @ 17124]
Etan Reisner <deryni@pidgin.im>
parents:
diff changeset
74 gaim_gtk_prefs_show()

mercurial