Tue, 21 Jun 2005 04:40:34 +0000
[gaim-migrate @ 12885]
Wherever possible, allow users to act on objects and data directly, rather
than through dialogs or explicit commands. For example, it is more intuitive
to drag a circle object around in a diagram rather than selecting a "Move"
command from a menu while the circle is selected. Simlarly, in an email
application, allow the user to attach files by dragging them from the file
manager and dropping them onto the message composition window if they wish.
-- GNOME HIG
This allows direct manipulation of buddy aliases and group names, by moving
the features from dialogs to GtkTreeView's inline editing.
I think this is a great change, but it seems like the type of thing that
might stir up controversy. If so, take it to the mailing list for discussion.
If not, I'll go ahead and perfect this sometime later.
-s.
| 7746 | 1 | #include "internal.h" |
| 2 | #include "plugin.h" | |
| 3 | ||
| 4 | #include "account.h" | |
| 5 | #include "connection.h" | |
| 6 | #include "conversation.h" | |
| 9954 | 7 | #include "version.h" |
| 7746 | 8 | |
|
9753
5951fd24250e
[gaim-migrate @ 10620]
Mark Doliner <markdoliner@pidgin.im>
parents:
9709
diff
changeset
|
9 | /* include UI for gaim_gtkdialogs_about() */ |
| 7746 | 10 | #include "gtkplugin.h" |
|
9709
2e73f176cc80
[gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents:
8999
diff
changeset
|
11 | #include "gtkdialogs.h" |
| 91 | 12 | |
| 5255 | 13 | #define GAIMINC_PLUGIN_ID "core-gaiminc" |
| 14 | ||
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
15 | static void |
| 7746 | 16 | echo_hi(GaimConnection *gc) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
17 | { |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
18 | /* this doesn't do much, just lets you know who we are :) */ |
|
9753
5951fd24250e
[gaim-migrate @ 10620]
Mark Doliner <markdoliner@pidgin.im>
parents:
9709
diff
changeset
|
19 | gaim_gtkdialogs_about(NULL, NULL); |
| 91 | 20 | } |
|
92
b2cc29da946e
[gaim-migrate @ 102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
91
diff
changeset
|
21 | |
| 7746 | 22 | static gboolean |
|
10104
081392879815
[gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9954
diff
changeset
|
23 | reverse(GaimAccount *account, char **who, char **message, |
|
081392879815
[gaim-migrate @ 11131]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9954
diff
changeset
|
24 | GaimConversation *conv, int *flags) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
25 | { |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
26 | /* this will drive you insane. whenever you receive a message, |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
27 | * the text of the message (HTML and all) will be reversed. */ |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
28 | int i, l; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
29 | char tmp; |
|
99
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
30 | |
|
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
31 | /* this check is necessary in case bad plugins do bad things */ |
|
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
32 | if (message == NULL || *message == NULL) |
| 7746 | 33 | return FALSE; |
|
99
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
34 | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
35 | l = strlen(*message); |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
36 | |
| 7746 | 37 | if (!strcmp(*who, gaim_account_get_username(account))) |
| 38 | return FALSE; | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
39 | |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
40 | for (i = 0; i < l/2; i++) { |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
41 | tmp = (*message)[i]; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
42 | (*message)[i] = (*message)[l - i - 1]; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
43 | (*message)[l - i - 1] = tmp; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
44 | } |
| 7746 | 45 | return FALSE; |
|
92
b2cc29da946e
[gaim-migrate @ 102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
91
diff
changeset
|
46 | } |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
47 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
48 | static void |
| 7746 | 49 | bud(GaimBuddy *who) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
50 | { |
| 7746 | 51 | GaimAccount *acct = who->account; |
| 52 | GaimConversation *conv = gaim_conversation_new(GAIM_CONV_IM, acct, who->name); | |
| 53 | ||
| 54 | gaim_conv_im_send(GAIM_CONV_IM(conv), "Hello!"); | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
55 | } |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
56 | |
| 5255 | 57 | /* |
| 58 | * EXPORTED FUNCTIONS | |
| 59 | */ | |
| 60 | ||
| 61 | static gboolean | |
| 62 | plugin_load(GaimPlugin *plugin) | |
| 63 | { | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
64 | /* this is for doing something fun when we sign on */ |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
65 | gaim_signal_connect(gaim_connections_get_handle(), "signed-on", |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
66 | plugin, GAIM_CALLBACK(echo_hi), NULL); |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
67 | |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
68 | /* this is for doing something fun when we get a message */ |
| 8999 | 69 | gaim_signal_connect(gaim_conversations_get_handle(), "receiving-im-msg", |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
70 | plugin, GAIM_CALLBACK(reverse), NULL); |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
71 | |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
72 | /* this is for doing something fun when a buddy comes online */ |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
73 | gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-on", |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
74 | plugin, GAIM_CALLBACK(bud), NULL); |
|
1047
783f8520d9a0
[gaim-migrate @ 1057]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
99
diff
changeset
|
75 | |
| 5255 | 76 | return TRUE; |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
77 | } |
|
96
2b8586ab9456
[gaim-migrate @ 106]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
94
diff
changeset
|
78 | |
| 5255 | 79 | static GaimPluginInfo info = |
| 80 | { | |
| 9954 | 81 | GAIM_PLUGIN_MAGIC, |
| 82 | GAIM_MAJOR_VERSION, | |
| 83 | GAIM_MINOR_VERSION, | |
| 5255 | 84 | GAIM_PLUGIN_STANDARD, /**< type */ |
| 85 | NULL, /**< ui_requirement */ | |
| 86 | 0, /**< flags */ | |
| 87 | NULL, /**< dependencies */ | |
| 88 | GAIM_PRIORITY_DEFAULT, /**< priority */ | |
| 89 | ||
| 90 | GAIMINC_PLUGIN_ID, /**< id */ | |
| 91 | N_("Gaim Demonstration Plugin"), /**< name */ | |
| 92 | VERSION, /**< version */ | |
| 93 | /** summary */ | |
| 94 | N_("An example plugin that does stuff - see the description."), | |
| 95 | /** description */ | |
| 96 | N_("This is a really cool plugin that does a lot of stuff:\n" | |
| 97 | "- It tells you who wrote the program when you log in\n" | |
| 98 | "- It reverses all incoming text\n" | |
| 99 | "- It sends a message to people on your list immediately" | |
| 100 | " when they sign on"), | |
| 101 | "Eric Warmenhoven <eric@warmenhoven.org>", /**< author */ | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
102 | GAIM_WEBSITE, /**< homepage */ |
| 5255 | 103 | |
| 104 | plugin_load, /**< load */ | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
105 | NULL, /**< unload */ |
| 5255 | 106 | NULL, /**< destroy */ |
| 107 | ||
| 108 | NULL, /**< ui_info */ | |
| 109 | NULL /**< extra_info */ | |
| 110 | }; | |
| 111 | ||
| 112 | static void | |
|
5920
963bfdefee02
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5255
diff
changeset
|
113 | init_plugin(GaimPlugin *plugin) |
| 5255 | 114 | { |
| 3551 | 115 | } |
| 116 | ||
| 6063 | 117 | GAIM_INIT_PLUGIN(gaiminc, init_plugin, info) |