Mercurial > pidgin
annotate src/gtkconv.h @ 11651:723487d07aa0
[gaim-migrate @ 13935]
Getting some stuff out of my tree.
I think I mostly just added a "transient" boolean to savedstatuses.
If a savedstatus is transient, it means it was created on the fly
by Gaim when the user set himself to "away." Transient statuses
will hang around for a few days in case the user wants to use it
again, but eventually it'll disappear. They should also not appear
in the saved status editor.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 13 Oct 2005 01:29:43 +0000 |
parents | f72607814e4a |
children | 38bbb0f15453 |
rev | line source |
---|---|
4359 | 1 /** |
2 * @file gtkconv.h GTK+ Conversation API | |
5034
4691c5936c01
[gaim-migrate @ 5377]
Christian Hammond <chipx86@chipx86.com>
parents:
4736
diff
changeset
|
3 * @ingroup gtkui |
4359 | 4 * |
5 * gaim | |
6 * | |
8046 | 7 * Gaim is the legal property of its developers, whose names are too numerous |
8 * to list here. Please refer to the COPYRIGHT file distributed with this | |
9 * source distribution. | |
7326
00a9ab26d607
[gaim-migrate @ 7912]
Christian Hammond <chipx86@chipx86.com>
parents:
7295
diff
changeset
|
10 * |
4359 | 11 * This program is free software; you can redistribute it and/or modify |
12 * it under the terms of the GNU General Public License as published by | |
13 * the Free Software Foundation; either version 2 of the License, or | |
14 * (at your option) any later version. | |
15 * | |
16 * This program is distributed in the hope that it will be useful, | |
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 * GNU General Public License for more details. | |
20 * | |
21 * You should have received a copy of the GNU General Public License | |
22 * along with this program; if not, write to the Free Software | |
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
24 */ | |
9713 | 25 #ifndef _GAIM_GTKCONVERSATION_H_ |
26 #define _GAIM_GTKCONVERSATION_H_ | |
4359 | 27 |
10008 | 28 typedef struct _GaimGtkImPane GaimGtkImPane; |
29 typedef struct _GaimGtkChatPane GaimGtkChatPane; | |
30 typedef struct _GaimGtkConversation GaimGtkConversation; | |
9709 | 31 |
9498 | 32 enum { |
33 CHAT_USERS_ICON_COLUMN, | |
11454
201617d49573
[gaim-migrate @ 13693]
Richard Laager <rlaager@wiktel.com>
parents:
11280
diff
changeset
|
34 CHAT_USERS_ALIAS_COLUMN, |
9498 | 35 CHAT_USERS_NAME_COLUMN, |
9554 | 36 CHAT_USERS_FLAGS_COLUMN, |
11454
201617d49573
[gaim-migrate @ 13693]
Richard Laager <rlaager@wiktel.com>
parents:
11280
diff
changeset
|
37 CHAT_USERS_COLOR_COLUMN, |
201617d49573
[gaim-migrate @ 13693]
Richard Laager <rlaager@wiktel.com>
parents:
11280
diff
changeset
|
38 CHAT_USERS_BUDDY_COLUMN, |
9498 | 39 CHAT_USERS_COLUMNS |
40 }; | |
41 | |
10008 | 42 #define GAIM_GTK_CONVERSATION(conv) \ |
43 ((GaimGtkConversation *)(conv)->ui_data) | |
44 | |
45 #define GAIM_IS_GTK_CONVERSATION(conv) \ | |
46 (gaim_conversation_get_ui_ops(conv) == \ | |
47 gaim_gtk_conversations_get_conv_ui_ops()) | |
48 | |
49 #include "gtkgaim.h" | |
50 #include "conversation.h" | |
11581 | 51 #include "gtkconvwin.h" |
10008 | 52 |
4359 | 53 /************************************************************************** |
54 * @name Structures | |
55 **************************************************************************/ | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
56 /*@{*/ |
4359 | 57 |
58 /** | |
59 * A GTK+ representation of a graphical window containing one or more | |
60 * conversations. | |
61 */ | |
62 | |
63 /** | |
7820 | 64 * A GTK+ Instant Message pane. |
4359 | 65 */ |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
66 struct _GaimGtkImPane |
4359 | 67 { |
68 GtkWidget *block; | |
9468 | 69 GtkWidget *send_file; |
4359 | 70 GtkWidget *sep1; |
71 GtkWidget *sep2; | |
72 GtkWidget *check; | |
73 GtkWidget *progress; | |
74 | |
75 gboolean a_virgin; | |
76 | |
77 /* Buddy icon stuff */ | |
9885 | 78 GtkWidget *icon_container; |
4359 | 79 GtkWidget *icon; |
9687 | 80 gboolean show_icon; |
8189 | 81 gboolean animate; |
4359 | 82 GdkPixbufAnimation *anim; |
83 GdkPixbufAnimationIter *iter; | |
84 guint32 icon_timer; | |
85 }; | |
86 | |
87 /** | |
88 * GTK+ Chat panes. | |
89 */ | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
90 struct _GaimGtkChatPane |
4359 | 91 { |
92 GtkWidget *count; | |
93 GtkWidget *list; | |
94 GtkWidget *topic_text; | |
10500 | 95 GtkWidget *userlist_im; |
96 GtkWidget *userlist_ignore; | |
97 GtkWidget *userlist_info; | |
4359 | 98 }; |
99 | |
100 /** | |
101 * A GTK+ conversation pane. | |
102 */ | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
103 struct _GaimGtkConversation |
4359 | 104 { |
10810 | 105 GaimConversation *active_conv; |
106 GList *convs; | |
11581 | 107 |
108 GaimGtkWindow *win; | |
109 | |
4359 | 110 gboolean make_sound; |
7326
00a9ab26d607
[gaim-migrate @ 7912]
Christian Hammond <chipx86@chipx86.com>
parents:
7295
diff
changeset
|
111 gboolean show_formatting_toolbar; |
9188 | 112 gboolean show_timestamps; |
4359 | 113 |
114 GtkTooltips *tooltips; | |
115 | |
116 GtkWidget *tab_cont; | |
117 GtkWidget *tabby; | |
6771
8eebba08b44b
[gaim-migrate @ 7308]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
118 GtkWidget *menu_tabby; |
4359 | 119 |
120 GtkWidget *imhtml; | |
121 GtkTextBuffer *entry_buffer; | |
122 GtkWidget *entry; | |
123 | |
7930 | 124 GtkWidget *close; /* "x" on the tab */ |
6392
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
5908
diff
changeset
|
125 GtkWidget *icon; |
4359 | 126 GtkWidget *tab_label; |
6771
8eebba08b44b
[gaim-migrate @ 7308]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
127 GtkWidget *menu_icon; |
8eebba08b44b
[gaim-migrate @ 7308]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
128 GtkWidget *menu_label; |
4359 | 129 GtkSizeGroup *sg; |
130 | |
9332 | 131 GtkWidget *lower_hbox; |
4359 | 132 |
8317 | 133 GtkWidget *toolbar; |
4359 | 134 |
135 struct | |
136 { | |
5106 | 137 GtkWidget *image; |
7295 | 138 GtkWidget *search; |
4359 | 139 |
140 } dialogs; | |
141 | |
142 union | |
143 { | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
144 GaimGtkImPane *im; |
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
145 GaimGtkChatPane *chat; |
4359 | 146 |
147 } u; | |
148 }; | |
149 | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
150 /*@}*/ |
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
151 |
4359 | 152 /************************************************************************** |
153 * @name GTK+ Conversation API | |
154 **************************************************************************/ | |
5673
62f57ec16f29
[gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents:
5167
diff
changeset
|
155 /*@{*/ |
62f57ec16f29
[gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents:
5167
diff
changeset
|
156 |
62f57ec16f29
[gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents:
5167
diff
changeset
|
157 /** |
10814
364a2ef907ae
[gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents:
10810
diff
changeset
|
158 * Returns the UI operations structure for GTK+ conversations. |
4359 | 159 * |
10814
364a2ef907ae
[gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents:
10810
diff
changeset
|
160 * @return The GTK+ conversation operations structure. |
4359 | 161 */ |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6771
diff
changeset
|
162 GaimConversationUiOps *gaim_gtk_conversations_get_conv_ui_ops(void); |
4359 | 163 |
164 /** | |
165 * Updates the buddy icon on a conversation. | |
166 * | |
167 * @param conv The conversation. | |
168 */ | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
169 void gaim_gtkconv_update_buddy_icon(GaimConversation *conv); |
4359 | 170 |
171 /** | |
172 * Updates the tab positions on all conversation windows to reflect any | |
173 * changed preferences. | |
174 */ | |
175 void gaim_gtkconv_update_tabs(void); | |
176 | |
177 /** | |
178 * Updates conversation buttons by protocol. | |
179 * | |
180 * @param conv The conversation. | |
181 */ | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5674
diff
changeset
|
182 void gaim_gtkconv_update_buttons_by_protocol(GaimConversation *conv); |
4359 | 183 |
11581 | 184 GaimGtkWindow *gaim_gtkconv_get_window(GaimGtkConversation *gtkconv); |
185 GdkPixbuf *gaim_gtkconv_get_tab_icon(GaimConversation *conv, gboolean small_icon); | |
186 void gaim_gtkconv_new(GaimConversation *conv); | |
11614 | 187 int gaim_gtkconv_get_tab_at_xy(GaimGtkWindow *win, int x, int y, gboolean *to_right); |
5673
62f57ec16f29
[gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents:
5167
diff
changeset
|
188 /*@}*/ |
62f57ec16f29
[gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents:
5167
diff
changeset
|
189 |
8582
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
190 /**************************************************************************/ |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
191 /** @name GTK+ Conversations Subsystem */ |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
192 /**************************************************************************/ |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
193 /*@{*/ |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
194 |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
195 /** |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
196 * Returns the gtk conversations subsystem handle. |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
197 * |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
198 * @return The conversations subsystem handle. |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
199 */ |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
200 void *gaim_gtk_conversations_get_handle(void); |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
201 |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
202 /** |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
203 * Initializes the GTK+ conversations subsystem. |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
204 */ |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
205 void gaim_gtk_conversations_init(void); |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
206 |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
207 /** |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
208 * Uninitialized the GTK+ conversation subsystem. |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
209 */ |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
210 void gaim_gtk_conversations_uninit(void); |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
211 |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
212 /*@}*/ |
d7c85220c685
[gaim-migrate @ 9332]
Christian Hammond <chipx86@chipx86.com>
parents:
8317
diff
changeset
|
213 |
9713 | 214 #endif /* _GAIM_GTKCONVERSATION_H_ */ |