Mercurial > pidgin.yaz
comparison plugins/perl.c @ 749:94edd99b7302
[gaim-migrate @ 759]
la la la. i suppose sooner or later i should document how to write a perl script.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Wed, 23 Aug 2000 19:43:09 +0000 |
parents | |
children | dc9ad68fc30e |
comparison
equal
deleted
inserted
replaced
748:c32d4fae9bbd | 749:94edd99b7302 |
---|---|
1 /* | |
2 * This is a plugin to load perl scripts. If you don't enter | |
3 * in a name of a script to load it will unload all perl | |
4 * scripts. This is just to test that perl is working in gaim | |
5 * before the UI comes in. You can use this to start building | |
6 * perl scripts, but don't use this for anything real yet. | |
7 * | |
8 */ | |
9 | |
10 #define GAIM_PLUGINS | |
11 #include "gaim.h" | |
12 #include "pixmaps/add.xpm" | |
13 #include "pixmaps/cancel.xpm" | |
14 | |
15 char *name() { | |
16 return "Perl Plug"; | |
17 } | |
18 | |
19 char *description() { | |
20 return "Interface for loading perl scripts"; | |
21 } | |
22 | |
23 int gaim_plugin_init(void *h) { | |
24 perl_init(); | |
25 } | |
26 | |
27 static GtkWidget *config = NULL; | |
28 static GtkWidget *entry = NULL; | |
29 | |
30 static void cfdes(GtkWidget *m, gpointer n) { | |
31 if (config) gtk_widget_destroy(config); | |
32 config = NULL; | |
33 } | |
34 | |
35 static void do_load(GtkWidget *m, gpointer n) { | |
36 char *file = gtk_entry_get_text(GTK_ENTRY(entry)); | |
37 if (!file || !strlen(file)) { | |
38 perl_end(); | |
39 perl_init(); | |
40 return; | |
41 } | |
42 perl_load_file(file); | |
43 gtk_widget_destroy(config); | |
44 } | |
45 | |
46 void gaim_plugin_config() { | |
47 GtkWidget *frame; | |
48 GtkWidget *vbox; | |
49 GtkWidget *hbox; | |
50 GtkWidget *label; | |
51 GtkWidget *ok; | |
52 GtkWidget *cancel; | |
53 | |
54 if (config) { | |
55 gtk_widget_show(config); | |
56 return; | |
57 } | |
58 | |
59 config = gtk_window_new(GTK_WINDOW_DIALOG); | |
60 gtk_window_set_policy(GTK_WINDOW(config), 0, 0, 1); | |
61 gtk_window_set_title(GTK_WINDOW(config), "Gaim - Add Perl Script"); | |
62 gtk_container_set_border_width(GTK_CONTAINER(config), 5); | |
63 gtk_signal_connect(GTK_OBJECT(config), "destroy", GTK_SIGNAL_FUNC(cfdes), 0); | |
64 gtk_widget_realize(config); | |
65 aol_icon(config->window); | |
66 | |
67 frame = gtk_frame_new("Load Script"); | |
68 gtk_container_add(GTK_CONTAINER(config), frame); | |
69 gtk_widget_show(frame); | |
70 | |
71 vbox = gtk_vbox_new(FALSE, 5); | |
72 gtk_container_add(GTK_CONTAINER(frame), vbox); | |
73 gtk_widget_show(vbox); | |
74 | |
75 hbox = gtk_hbox_new(FALSE, 5); | |
76 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5); | |
77 gtk_widget_show(hbox); | |
78 | |
79 label = gtk_label_new("File Name:"); | |
80 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | |
81 gtk_widget_show(label); | |
82 | |
83 entry = gtk_entry_new(); | |
84 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 5); | |
85 gtk_signal_connect(GTK_OBJECT(entry), "activate", GTK_SIGNAL_FUNC(do_load), 0); | |
86 gtk_widget_show(entry); | |
87 | |
88 hbox = gtk_hbox_new(TRUE, 10); | |
89 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5); | |
90 gtk_widget_show(hbox); | |
91 | |
92 ok = picture_button(config, "Load", add_xpm); | |
93 gtk_box_pack_start(GTK_BOX(hbox), ok, FALSE, FALSE, 5); | |
94 gtk_signal_connect(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(do_load), 0); | |
95 | |
96 cancel = picture_button(config, "Cancel", cancel_xpm); | |
97 gtk_box_pack_start(GTK_BOX(hbox), cancel, FALSE, FALSE, 5); | |
98 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(cfdes), 0); | |
99 | |
100 gtk_widget_show(config); | |
101 } | |
102 | |
103 void gaim_plugin_remove() { | |
104 if (config) gtk_widget_destroy(config); | |
105 perl_end(); | |
106 } |