pidgin/plugins/pidgininc.c

Wed, 21 Sep 2011 06:45:26 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Wed, 21 Sep 2011 06:45:26 +0000
changeset 32575
eb4fc932fae9
parent 25639
f027548e7f9e
child 34622
753f46dd000f
child 38258
9a6551eba09c
permissions
-rw-r--r--

Apply conversation theme when opening the GTK conversation. All the
parsing stuff was moved out of the theme code and into the conversation
code.

Someone (not me!) needs to check the code I commented out and see if
we really need that stuff (and then port it to WebKit/styling).

We also need to determine where to place Template.html and the rest
of our (not-yet-written) default theme.

7746
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
1 #include "internal.h"
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
2 #include "plugin.h"
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
3
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
4 #include "account.h"
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
5 #include "connection.h"
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
6 #include "conversation.h"
9954
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9753
diff changeset
7 #include "version.h"
7746
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
8
25629
a1d84a478cb7 s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents: 20288
diff changeset
9 /* include UI for pidgin_dialogs_about() */
7746
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
10 #include "gtkplugin.h"
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 8999
diff changeset
11 #include "gtkdialogs.h"
91
5d2be994dcf4 [gaim-migrate @ 101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
12
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
13 #define PURPLEINC_PLUGIN_ID "core-purpleinc"
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
14
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
15 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
16 echo_hi(PurpleConnection *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 :) */
25629
a1d84a478cb7 s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents: 20288
diff changeset
19 pidgin_dialogs_about();
91
5d2be994dcf4 [gaim-migrate @ 101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
20 }
92
b2cc29da946e [gaim-migrate @ 102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 91
diff changeset
21
7746
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
22 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
23 reverse(PurpleAccount *account, char **who, char **message,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
24 PurpleConversation *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
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
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
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
37 if (!strcmp(*who, purple_account_get_username(account)))
7746
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
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
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
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
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
49 bud(PurpleBuddy *who)
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
50 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
51 PurpleAccount *acct = who->account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
52 PurpleConversation *conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, who->name);
7746
d7cdf0d60f5d [gaim-migrate @ 8391]
Paul Aurich <darkrain42@pidgin.im>
parents: 6982
diff changeset
53
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
54 purple_conv_im_send(PURPLE_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
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
57 /*
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
58 * EXPORTED FUNCTIONS
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
59 */
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
60
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
61 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
62 plugin_load(PurplePlugin *plugin)
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
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 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
65 purple_signal_connect(purple_connections_get_handle(), "signed-on",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
66 plugin, PURPLE_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 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
69 purple_signal_connect(purple_conversations_get_handle(), "receiving-im-msg",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
70 plugin, PURPLE_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 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
73 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
74 plugin, PURPLE_CALLBACK(bud), NULL);
1047
783f8520d9a0 [gaim-migrate @ 1057]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 99
diff changeset
75
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
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
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
79 static PurplePluginInfo info =
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
80 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
81 PURPLE_PLUGIN_MAGIC,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
82 PURPLE_MAJOR_VERSION,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
83 PURPLE_MINOR_VERSION,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
84 PURPLE_PLUGIN_STANDARD, /**< type */
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
85 NULL, /**< ui_requirement */
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
86 0, /**< flags */
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
87 NULL, /**< dependencies */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
88 PURPLE_PRIORITY_DEFAULT, /**< priority */
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
89
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
90 PURPLEINC_PLUGIN_ID, /**< id */
16073
e70e589dde54 more help for translators (I removed a few PIDGIN_NAME references
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
91 N_("Pidgin Demonstration Plugin"), /**< name */
20288
5ca925a094e2 applied changes from 03b709ec2a153e7e82719df0ba4635108bb1d3c6
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16404
diff changeset
92 DISPLAY_VERSION, /**< version */
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
93 /** summary */
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
94 N_("An example plugin that does stuff - see the description."),
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
95 /** description */
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
96 N_("This is a really cool plugin that does a lot of stuff:\n"
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
97 "- It tells you who wrote the program when you log in\n"
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
98 "- It reverses all incoming text\n"
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
99 "- It sends a message to people on your list immediately"
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
100 " when they sign on"),
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
101 "Eric Warmenhoven <eric@warmenhoven.org>", /**< author */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
102 PURPLE_WEBSITE, /**< homepage */
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
103
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
104 plugin_load, /**< load */
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
105 NULL, /**< unload */
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
106 NULL, /**< destroy */
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
107
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
108 NULL, /**< ui_info */
13471
e01689a020dd [gaim-migrate @ 15846]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
109 NULL, /**< extra_info */
e01689a020dd [gaim-migrate @ 15846]
Richard Laager <rlaager@pidgin.im>
parents: 11338
diff changeset
110 NULL, /**< prefs_info */
25629
a1d84a478cb7 s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents: 20288
diff changeset
111 NULL, /**< actions */
a1d84a478cb7 s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents: 20288
diff changeset
112 /* padding */
a1d84a478cb7 s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents: 20288
diff changeset
113 NULL,
a1d84a478cb7 s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents: 20288
diff changeset
114 NULL,
a1d84a478cb7 s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents: 20288
diff changeset
115 NULL,
a1d84a478cb7 s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents: 20288
diff changeset
116 NULL
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
117 };
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
118
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
119 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
120 init_plugin(PurplePlugin *plugin)
5255
8aa84137a01f [gaim-migrate @ 5627]
Paul Aurich <darkrain42@pidgin.im>
parents: 5205
diff changeset
121 {
3551
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 1047
diff changeset
122 }
acce66c34dbd [gaim-migrate @ 3626]
Sean Egan <seanegan@pidgin.im>
parents: 1047
diff changeset
123
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
124 PURPLE_INIT_PLUGIN(purpleinc, init_plugin, info)

mercurial