finch/libgnt/test/wm.c

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 15886
13ed89c4f01d
child 18068
b6554e3c8224
child 31294
73607ab89c6f
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

14022
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1 #include <gmodule.h>
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
3 #include <gnt.h>
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
4 #include <gntbox.h>
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
5 #include <gntentry.h>
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
6 #include <gntlabel.h>
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
7
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
8 static gboolean
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
9 key_pressed(GntEntry *entry, const char *text, gpointer null)
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
10 {
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
11 if (*text != '\r')
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
12 return FALSE;
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
13
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
14 {
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
15 const char *cmd;
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
16 void *handle;
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
17 void (*func)();
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
18
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
19 cmd = gnt_entry_get_text(entry);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
20 handle = g_module_open(cmd, G_MODULE_BIND_LOCAL);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
21 if (handle && g_module_symbol(handle, "main", (gpointer)&func))
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
22 {
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14022
diff changeset
23 char *argv[] = {cmd, NULL};
14022
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
24 gnt_entry_clear(entry);
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14022
diff changeset
25 func(1, argv);
14022
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
26 }
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
27 else
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
28 {
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
29 GntWidget *widget = gnt_vbox_new(FALSE);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
30 gnt_box_set_toplevel(GNT_BOX(widget), TRUE);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
31 gnt_box_set_title(GNT_BOX(widget), "Error");
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
32 gnt_box_add_widget(GNT_BOX(widget), gnt_label_new("Could not execute."));
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14022
diff changeset
33 gnt_box_add_widget(GNT_BOX(widget), gnt_label_new(g_module_error()));
14022
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
34
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
35 gnt_widget_show(widget);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
36 }
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
37 }
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
38
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
39 return TRUE;
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
40 }
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
41
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
42 int main()
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
43 {
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
44 GntWidget *window, *entry;
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
45
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
46 freopen(".error", "w", stderr);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
47
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
48 gnt_init();
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
49
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
50 window = gnt_hbox_new(FALSE);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
51
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
52 gnt_box_add_widget(GNT_BOX(window), gnt_label_new("Command"));
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
53
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
54 entry = gnt_entry_new(NULL);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
55 g_signal_connect(G_OBJECT(entry), "key_pressed", G_CALLBACK(key_pressed), NULL);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
56 gnt_box_add_widget(GNT_BOX(window), entry);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
57
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
58 gnt_widget_set_position(window, 0, getmaxy(stdscr) - 2);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
59 gnt_widget_show(window);
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
60
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
61 gnt_main();
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
62
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
63 gnt_quit();
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
64
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
65 return 0;
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
66 }
51776fed1be2 [gaim-migrate @ 16513]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
67

mercurial