Wed, 07 Sep 2011 05:00:48 +0000
Get rid of a wrapper function.
|
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 | } |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
15886
diff
changeset
|
38 | |
|
14022
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(); |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
15886
diff
changeset
|
64 | |
|
14022
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 |