| 49 CHAT_USERS_ALIAS_KEY_COLUMN, |
49 CHAT_USERS_ALIAS_KEY_COLUMN, |
| 50 CHAT_USERS_NAME_COLUMN, |
50 CHAT_USERS_NAME_COLUMN, |
| 51 CHAT_USERS_FLAGS_COLUMN, |
51 CHAT_USERS_FLAGS_COLUMN, |
| 52 CHAT_USERS_COLOR_COLUMN, |
52 CHAT_USERS_COLOR_COLUMN, |
| 53 CHAT_USERS_WEIGHT_COLUMN, |
53 CHAT_USERS_WEIGHT_COLUMN, |
| 54 CHAT_USERS_ICON_STOCK_COLUMN, /** @since 2.6.0 */ |
54 CHAT_USERS_ICON_STOCK_COLUMN, |
| 55 CHAT_USERS_COLUMNS |
55 CHAT_USERS_COLUMNS |
| 56 }; |
56 }; |
| 57 |
57 |
| 58 #define PIDGIN_CONVERSATION(conv) \ |
58 #define PIDGIN_CONVERSATION(conv) \ |
| 59 ((PidginConversation *)(conv)->ui_data) |
59 ((PidginConversation *)purple_conversation_get_ui_data(conv)) |
| 60 |
60 |
| 61 #define PIDGIN_IS_PIDGIN_CONVERSATION(conv) \ |
61 #define PIDGIN_IS_PIDGIN_CONVERSATION(conv) \ |
| 62 (purple_conversation_get_ui_ops(conv) == \ |
62 (purple_conversation_get_ui_ops(conv) == \ |
| 63 pidgin_conversations_get_conv_ui_ops()) |
63 pidgin_conversations_get_conv_ui_ops()) |
| 64 |
64 |
| 65 #include "pidgin.h" |
65 #include "pidgin.h" |
| 66 #include "conversation.h" |
66 #include "conversation.h" |
| 67 #include "gtkconvwin.h" |
67 #include "gtkconvwin.h" |
| |
68 #include "gtkconv-theme.h" |
| 68 |
69 |
| 69 /************************************************************************** |
70 /************************************************************************** |
| 70 * @name Structures |
71 * @name Structures |
| 71 **************************************************************************/ |
72 **************************************************************************/ |
| 72 /*@{*/ |
73 /*@{*/ |
| 73 |
74 |
| 74 /** |
75 /** |
| 75 * A GTK+ representation of a graphical window containing one or more |
76 * A GTK+ representation of a graphical window containing one or more |
| 76 * conversations. |
77 * conversations. |
| 77 */ |
78 */ |
| 78 |
|
| 79 /** |
|
| 80 * A GTK+ Instant Message pane. |
|
| 81 */ |
|
| 82 struct _PidginImPane |
|
| 83 { |
|
| 84 GtkWidget *block; |
|
| 85 GtkWidget *send_file; |
|
| 86 GtkWidget *sep1; |
|
| 87 GtkWidget *sep2; |
|
| 88 GtkWidget *check; |
|
| 89 GtkWidget *progress; |
|
| 90 guint32 typing_timer; |
|
| 91 |
|
| 92 /* Buddy icon stuff */ |
|
| 93 GtkWidget *icon_container; |
|
| 94 GtkWidget *icon; |
|
| 95 gboolean show_icon; |
|
| 96 gboolean animate; |
|
| 97 GdkPixbufAnimation *anim; |
|
| 98 GdkPixbufAnimationIter *iter; |
|
| 99 guint32 icon_timer; |
|
| 100 }; |
|
| 101 |
|
| 102 /** |
|
| 103 * GTK+ Chat panes. |
|
| 104 */ |
|
| 105 struct _PidginChatPane |
|
| 106 { |
|
| 107 GtkWidget *count; |
|
| 108 GtkWidget *list; |
|
| 109 GtkWidget *topic_text; |
|
| 110 }; |
|
| 111 |
79 |
| 112 /** |
80 /** |
| 113 * A GTK+ conversation pane. |
81 * A GTK+ conversation pane. |
| 114 */ |
82 */ |
| 115 struct _PidginConversation |
83 struct _PidginConversation |
| 126 |
94 |
| 127 GtkWidget *tab_cont; |
95 GtkWidget *tab_cont; |
| 128 GtkWidget *tabby; |
96 GtkWidget *tabby; |
| 129 GtkWidget *menu_tabby; |
97 GtkWidget *menu_tabby; |
| 130 |
98 |
| 131 GtkWidget *imhtml; |
99 PidginConvTheme *theme; |
| |
100 PurpleMessageFlags last_flags; |
| |
101 GtkWidget *webview; |
| 132 GtkTextBuffer *entry_buffer; |
102 GtkTextBuffer *entry_buffer; |
| 133 GtkWidget *entry; |
103 GtkWidget *entry; |
| 134 gboolean auto_resize; /* this is set to TRUE if the conversation |
104 gboolean auto_resize; /* this is set to TRUE if the conversation |
| 135 * is being resized by a non-user-initiated |
105 * is being resized by a non-user-initiated |
| 136 * event, such as the buddy icon appearing |
106 * event, such as the buddy icon appearing |
| 137 */ |
107 */ |
| 138 gboolean entry_growing; /* True if the size of the entry was set |
108 gboolean entry_growing; /* True if the size of the entry was set |
| 139 * automatically by typing too much to fit |
109 * automatically by typing too much to fit |
| 140 * in one line */ |
110 * in one line */ |
| 141 |
111 |
| 142 GtkWidget *close; /* "x" on the tab */ |
112 GtkWidget *close; /* "x" on the tab */ |
| 143 GtkWidget *icon; |
113 GtkWidget *icon; |
| 144 GtkWidget *tab_label; |
114 GtkWidget *tab_label; |
| 145 GtkWidget *menu_icon; |
115 GtkWidget *menu_icon; |
| 146 GtkWidget *menu_label; |
116 GtkWidget *menu_label; |
| 147 #if !(defined PIDGIN_DISABLE_DEPRECATED) || (defined _PIDGIN_GTKCONV_C_) |
|
| 148 /** @deprecated */ |
|
| 149 GtkSizeGroup *sg; |
|
| 150 #else |
|
| 151 gpointer depr1; |
|
| 152 #endif |
|
| 153 |
117 |
| 154 GtkWidget *lower_hbox; |
118 GtkWidget *lower_hbox; |
| 155 |
119 |
| 156 GtkWidget *toolbar; |
120 GtkWidget *toolbar; |
| 157 |
121 |
| 267 * Reattach Pidgin UI to a conversation. |
229 * Reattach Pidgin UI to a conversation. |
| 268 * |
230 * |
| 269 * @param conv The conversation. |
231 * @param conv The conversation. |
| 270 * |
232 * |
| 271 * @return Wheter Pidgin UI was successfully attached. |
233 * @return Wheter Pidgin UI was successfully attached. |
| 272 * |
|
| 273 * @since 2.2.0 |
|
| 274 */ |
234 */ |
| 275 gboolean pidgin_conv_attach_to_conversation(PurpleConversation *conv); |
235 gboolean pidgin_conv_attach_to_conversation(PurpleConversation *conv); |
| 276 |
236 |
| 277 PidginWindow *pidgin_conv_get_window(PidginConversation *gtkconv); |
237 PidginWindow *pidgin_conv_get_window(PidginConversation *gtkconv); |
| 278 GdkPixbuf *pidgin_conv_get_tab_icon(PurpleConversation *conv, gboolean small_icon); |
238 GdkPixbuf *pidgin_conv_get_tab_icon(PurpleConversation *conv, gboolean small_icon); |