src/gtkconv.h

Tue, 11 Apr 2006 16:06:24 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Tue, 11 Apr 2006 16:06:24 +0000
changeset 13624
c6577def4e2a
parent 12832
e5eb305a240d
child 13840
8ea0f9070d3a
permissions
-rw-r--r--

[gaim-migrate @ 16009]
Use the GSlice allocator (for logs and log sets) when compiling with glib 2.10 or greater and eliminate some unnecessary memory zeroing. This cuts the log loading time in half for one of Luke's contacts.

4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 * @file gtkconv.h GTK+ Conversation API
5034
077678f7b048 [gaim-migrate @ 5377]
Christian Hammond <chipx86@chipx86.com>
parents: 4736
diff changeset
3 * @ingroup gtkui
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 * gaim
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7996
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7996
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7996
diff changeset
9 * source distribution.
7326
599c9e8c9da4 [gaim-migrate @ 7912]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7295
diff changeset
10 *
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 */
9713
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 9709
diff changeset
25 #ifndef _GAIM_GTKCONVERSATION_H_
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 9709
diff changeset
26 #define _GAIM_GTKCONVERSATION_H_
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
28 typedef struct _GaimGtkImPane GaimGtkImPane;
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
29 typedef struct _GaimGtkChatPane GaimGtkChatPane;
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
30 typedef struct _GaimGtkConversation GaimGtkConversation;
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9687
diff changeset
31
11664
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11614
diff changeset
32 /**
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11614
diff changeset
33 * Unseen text states.
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11614
diff changeset
34 */
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11614
diff changeset
35 typedef enum
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11614
diff changeset
36 {
12132
7d6ad34fff3a [gaim-migrate @ 14432]
Richard Laager <rlaager@pidgin.im>
parents: 12117
diff changeset
37 GAIM_UNSEEN_NONE, /**< No unseen text in the conversation. */
7d6ad34fff3a [gaim-migrate @ 14432]
Richard Laager <rlaager@pidgin.im>
parents: 12117
diff changeset
38 GAIM_UNSEEN_EVENT, /**< Unseen events in the conversation. */
7d6ad34fff3a [gaim-migrate @ 14432]
Richard Laager <rlaager@pidgin.im>
parents: 12117
diff changeset
39 GAIM_UNSEEN_NO_LOG, /**< Unseen text with NO_LOG flag. */
7d6ad34fff3a [gaim-migrate @ 14432]
Richard Laager <rlaager@pidgin.im>
parents: 12117
diff changeset
40 GAIM_UNSEEN_TEXT, /**< Unseen text in the conversation. */
7d6ad34fff3a [gaim-migrate @ 14432]
Richard Laager <rlaager@pidgin.im>
parents: 12117
diff changeset
41 GAIM_UNSEEN_NICK /**< Unseen text and the nick was said. */
11664
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11614
diff changeset
42 } GaimUnseenState;
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11614
diff changeset
43
9498
432fc90c7e22 [gaim-migrate @ 10324]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9497
diff changeset
44 enum {
432fc90c7e22 [gaim-migrate @ 10324]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9497
diff changeset
45 CHAT_USERS_ICON_COLUMN,
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11280
diff changeset
46 CHAT_USERS_ALIAS_COLUMN,
9498
432fc90c7e22 [gaim-migrate @ 10324]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9497
diff changeset
47 CHAT_USERS_NAME_COLUMN,
9554
1609ba3612c3 [gaim-migrate @ 10387]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9508
diff changeset
48 CHAT_USERS_FLAGS_COLUMN,
11454
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11280
diff changeset
49 CHAT_USERS_COLOR_COLUMN,
a604c2097a6e [gaim-migrate @ 13693]
Richard Laager <rlaager@pidgin.im>
parents: 11280
diff changeset
50 CHAT_USERS_BUDDY_COLUMN,
9498
432fc90c7e22 [gaim-migrate @ 10324]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9497
diff changeset
51 CHAT_USERS_COLUMNS
432fc90c7e22 [gaim-migrate @ 10324]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9497
diff changeset
52 };
432fc90c7e22 [gaim-migrate @ 10324]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9497
diff changeset
53
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
54 #define GAIM_GTK_CONVERSATION(conv) \
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
55 ((GaimGtkConversation *)(conv)->ui_data)
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
56
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
57 #define GAIM_IS_GTK_CONVERSATION(conv) \
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
58 (gaim_conversation_get_ui_ops(conv) == \
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
59 gaim_gtk_conversations_get_conv_ui_ops())
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
60
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
61 #include "gtkgaim.h"
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
62 #include "conversation.h"
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11554
diff changeset
63 #include "gtkconvwin.h"
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9885
diff changeset
64
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65 /**************************************************************************
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66 * @name Structures
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67 **************************************************************************/
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
68 /*@{*/
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 /**
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71 * A GTK+ representation of a graphical window containing one or more
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72 * conversations.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
73 */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
74
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
75 /**
7820
06fc9f66d2cb [gaim-migrate @ 8472]
Mark Doliner <markdoliner@pidgin.im>
parents: 7650
diff changeset
76 * A GTK+ Instant Message pane.
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
77 */
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
78 struct _GaimGtkImPane
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
79 {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
80 GtkWidget *block;
9468
f2108802d596 [gaim-migrate @ 10293]
Daniel Atallah <datallah@pidgin.im>
parents: 9339
diff changeset
81 GtkWidget *send_file;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
82 GtkWidget *sep1;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
83 GtkWidget *sep2;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
84 GtkWidget *check;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
85 GtkWidget *progress;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
86
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
87 /* Buddy icon stuff */
9885
af0d918e9262 [gaim-migrate @ 10767]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
88 GtkWidget *icon_container;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
89 GtkWidget *icon;
9687
489b6b200876 [gaim-migrate @ 10539]
Sean Egan <seanegan@pidgin.im>
parents: 9554
diff changeset
90 gboolean show_icon;
8189
dedf9efe2a1e [gaim-migrate @ 8910]
MBG <chromakode@gmail.com>
parents: 8046
diff changeset
91 gboolean animate;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
92 GdkPixbufAnimation *anim;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
93 GdkPixbufAnimationIter *iter;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
94 guint32 icon_timer;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
95 };
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
96
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
97 /**
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
98 * GTK+ Chat panes.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
99 */
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
100 struct _GaimGtkChatPane
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
101 {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
102 GtkWidget *count;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
103 GtkWidget *list;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
104 GtkWidget *topic_text;
10500
b1d1b55682d7 [gaim-migrate @ 11792]
Mark Doliner <markdoliner@pidgin.im>
parents: 10456
diff changeset
105 GtkWidget *userlist_im;
b1d1b55682d7 [gaim-migrate @ 11792]
Mark Doliner <markdoliner@pidgin.im>
parents: 10456
diff changeset
106 GtkWidget *userlist_ignore;
b1d1b55682d7 [gaim-migrate @ 11792]
Mark Doliner <markdoliner@pidgin.im>
parents: 10456
diff changeset
107 GtkWidget *userlist_info;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
108 };
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
109
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
110 /**
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
111 * A GTK+ conversation pane.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
112 */
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
113 struct _GaimGtkConversation
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
114 {
10810
076e608db319 [gaim-migrate @ 12463]
Tim Ringenbach <marv@pidgin.im>
parents: 10500
diff changeset
115 GaimConversation *active_conv;
076e608db319 [gaim-migrate @ 12463]
Tim Ringenbach <marv@pidgin.im>
parents: 10500
diff changeset
116 GList *convs;
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11554
diff changeset
117
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11554
diff changeset
118 GaimGtkWindow *win;
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11554
diff changeset
119
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
120 gboolean make_sound;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
121
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
122 GtkTooltips *tooltips;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
123
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
124 GtkWidget *tab_cont;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
125 GtkWidget *tabby;
6771
06048ac9eb49 [gaim-migrate @ 7308]
Jesse Farmer
parents: 6392
diff changeset
126 GtkWidget *menu_tabby;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
127
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
128 GtkWidget *imhtml;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
129 GtkTextBuffer *entry_buffer;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
130 GtkWidget *entry;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
131
7930
3005873ac411 [gaim-migrate @ 8601]
Mark Doliner <markdoliner@pidgin.im>
parents: 7887
diff changeset
132 GtkWidget *close; /* "x" on the tab */
6392
3db2b3c7b5aa [gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents: 5908
diff changeset
133 GtkWidget *icon;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
134 GtkWidget *tab_label;
6771
06048ac9eb49 [gaim-migrate @ 7308]
Jesse Farmer
parents: 6392
diff changeset
135 GtkWidget *menu_icon;
06048ac9eb49 [gaim-migrate @ 7308]
Jesse Farmer
parents: 6392
diff changeset
136 GtkWidget *menu_label;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
137 GtkSizeGroup *sg;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
138
9332
9452c2623bd5 [gaim-migrate @ 10140]
Nathan Walp <nwalp@pidgin.im>
parents: 9188
diff changeset
139 GtkWidget *lower_hbox;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
140
8317
fd4cf67705df [gaim-migrate @ 9041]
Sean Egan <seanegan@pidgin.im>
parents: 8290
diff changeset
141 GtkWidget *toolbar;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
142
11664
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11614
diff changeset
143 GaimUnseenState unseen_state;
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12132
diff changeset
144 guint unseen_count;
11664
050d0caa0832 [gaim-migrate @ 13949]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11614
diff changeset
145
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
146 struct
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
147 {
5106
37a446bb9501 [gaim-migrate @ 5469]
Ka-Hing Cheung <khc@pidgin.im>
parents: 5049
diff changeset
148 GtkWidget *image;
7295
4b40d35a6b25 [gaim-migrate @ 7879]
Sean Egan <seanegan@pidgin.im>
parents: 7118
diff changeset
149 GtkWidget *search;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
150
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
151 } dialogs;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
152
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
153 union
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
154 {
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
155 GaimGtkImPane *im;
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
156 GaimGtkChatPane *chat;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
157
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
158 } u;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
159 };
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
160
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
161 /*@}*/
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
162
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
163 /**************************************************************************
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
164 * @name GTK+ Conversation API
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
165 **************************************************************************/
5673
47f654fb5134 [gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents: 5167
diff changeset
166 /*@{*/
47f654fb5134 [gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents: 5167
diff changeset
167
47f654fb5134 [gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents: 5167
diff changeset
168 /**
10814
7e17cb56b019 [gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents: 10810
diff changeset
169 * Returns the UI operations structure for GTK+ conversations.
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
170 *
10814
7e17cb56b019 [gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents: 10810
diff changeset
171 * @return The GTK+ conversation operations structure.
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
172 */
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6771
diff changeset
173 GaimConversationUiOps *gaim_gtk_conversations_get_conv_ui_ops(void);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
174
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
175 /**
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
176 * Updates the buddy icon on a conversation.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
177 *
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
178 * @param conv The conversation.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
179 */
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
180 void gaim_gtkconv_update_buddy_icon(GaimConversation *conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
181
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
182 /**
11911
797cf405943c [gaim-migrate @ 14202]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11690
diff changeset
183 * Sets the active conversation within a GTK-conversation.
797cf405943c [gaim-migrate @ 14202]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11690
diff changeset
184 *
797cf405943c [gaim-migrate @ 14202]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11690
diff changeset
185 * @param conv The conversation
797cf405943c [gaim-migrate @ 14202]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11690
diff changeset
186 */
797cf405943c [gaim-migrate @ 14202]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11690
diff changeset
187 void gaim_gtkconv_switch_active_conversation(GaimConversation *conv);
797cf405943c [gaim-migrate @ 14202]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11690
diff changeset
188
797cf405943c [gaim-migrate @ 14202]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11690
diff changeset
189 /**
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
190 * Updates the tab positions on all conversation windows to reflect any
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
191 * changed preferences.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
192 */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
193 void gaim_gtkconv_update_tabs(void);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
194
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
195 /**
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
196 * Updates conversation buttons by protocol.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
197 *
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
198 * @param conv The conversation.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
199 */
5676
d3c2fdaf4821 [gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents: 5674
diff changeset
200 void gaim_gtkconv_update_buttons_by_protocol(GaimConversation *conv);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
201
12021
dff8a2336172 [gaim-migrate @ 14314]
Casey Harkins <charkins@pidgin.im>
parents: 11911
diff changeset
202 /**
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
203 * Returns a list of conversations of the given type which have an unseen
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
204 * state greater than or equal to the specified minimum state. Using the
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
205 * hidden_only parameter, this search can be limited to hidden
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
206 * conversations. The max_count parameter will limit the total number of
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
207 * converations returned if greater than zero. The returned list should
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
208 * be freed by the caller.
12021
dff8a2336172 [gaim-migrate @ 14314]
Casey Harkins <charkins@pidgin.im>
parents: 11911
diff changeset
209 *
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
210 * @param type The type of conversation.
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
211 * @param min_state The minimum unseen state.
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
212 * @param hidden_only If TRUE, only consider hidden conversations.
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
213 * @param max_count Maximum number of conversations to return, or 0 for
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
214 * no maximum.
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
215 * @return List of GaimConversation matching criteria, or NULL.
12021
dff8a2336172 [gaim-migrate @ 14314]
Casey Harkins <charkins@pidgin.im>
parents: 11911
diff changeset
216 */
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
217 GList *
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
218 gaim_gtk_conversations_find_unseen_list(GaimConversationType type,
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
219 GaimUnseenState min_state,
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
220 gboolean hidden_only,
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
221 guint max_count);
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
222
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12132
diff changeset
223 /**
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
224 * Fill a menu with a list of conversations. Clicking the conversation
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
225 * menu item will present that conversation to the user.
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12132
diff changeset
226 *
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
227 * @param menu Menu widget to add items to.
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
228 * @param convs List of GaimConversation to add to menu.
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
229 * @return Number of conversations added to menu.
12175
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12132
diff changeset
230 */
3e790a58d906 [gaim-migrate @ 14477]
Casey Harkins <charkins@pidgin.im>
parents: 12132
diff changeset
231 guint
12468
fe558afb01b4 [gaim-migrate @ 14778]
Casey Harkins <charkins@pidgin.im>
parents: 12239
diff changeset
232 gaim_gtk_conversations_fill_menu(GtkWidget *menu, GList *convs);
12021
dff8a2336172 [gaim-migrate @ 14314]
Casey Harkins <charkins@pidgin.im>
parents: 11911
diff changeset
233
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12021
diff changeset
234 /**
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12021
diff changeset
235 * Presents a gaim conversation to the user.
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12021
diff changeset
236 *
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12021
diff changeset
237 * @param conv The conversation.
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12021
diff changeset
238 */
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12021
diff changeset
239 void gaim_gtkconv_present_conversation(GaimConversation *conv);
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12021
diff changeset
240
11581
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11554
diff changeset
241 GaimGtkWindow *gaim_gtkconv_get_window(GaimGtkConversation *gtkconv);
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11554
diff changeset
242 GdkPixbuf *gaim_gtkconv_get_tab_icon(GaimConversation *conv, gboolean small_icon);
5c7f44be5dfe [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11554
diff changeset
243 void gaim_gtkconv_new(GaimConversation *conv);
11614
47ced44a7707 [gaim-migrate @ 13888]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11581
diff changeset
244 int gaim_gtkconv_get_tab_at_xy(GaimGtkWindow *win, int x, int y, gboolean *to_right);
12239
e4f62729e2c7 [gaim-migrate @ 14541]
Nathan Walp <nwalp@pidgin.im>
parents: 12188
diff changeset
245 gboolean gaim_gtkconv_is_hidden(GaimGtkConversation *gtkconv);
5673
47f654fb5134 [gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents: 5167
diff changeset
246 /*@}*/
47f654fb5134 [gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents: 5167
diff changeset
247
8582
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
248 /**************************************************************************/
12832
e5eb305a240d [gaim-migrate @ 15180]
Richard Laager <rlaager@pidgin.im>
parents: 12468
diff changeset
249 /** @name GTK+ Conversations Subsystem */
8582
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
250 /**************************************************************************/
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
251 /*@{*/
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
252
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
253 /**
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
254 * Returns the gtk conversations subsystem handle.
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
255 *
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
256 * @return The conversations subsystem handle.
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
257 */
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
258 void *gaim_gtk_conversations_get_handle(void);
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
259
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
260 /**
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
261 * Initializes the GTK+ conversations subsystem.
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
262 */
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
263 void gaim_gtk_conversations_init(void);
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
264
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
265 /**
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
266 * Uninitialized the GTK+ conversation subsystem.
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
267 */
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
268 void gaim_gtk_conversations_uninit(void);
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
269
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
270 /*@}*/
7d573742efc5 [gaim-migrate @ 9332]
Etan Reisner <deryni@pidgin.im>
parents: 8317
diff changeset
271
9713
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 9709
diff changeset
272 #endif /* _GAIM_GTKCONVERSATION_H_ */

mercurial