00001
00026 #ifndef _GAIM_GTK_CONVERSATION_H_
00027 #define _GAIM_GTK_CONVERSATION_H_
00028
00029 #include "conversation.h"
00030
00031
00032
00033
00036 typedef struct _GaimGtkWindow GaimGtkWindow;
00037 typedef struct _GaimGtkImPane GaimGtkImPane;
00038 typedef struct _GaimGtkChatPane GaimGtkChatPane;
00039 typedef struct _GaimGtkConversation GaimGtkConversation;
00040
00045 struct _GaimGtkWindow
00046 {
00047 GtkWidget *window;
00048 GtkWidget *notebook;
00050 struct
00051 {
00052 GtkWidget *menubar;
00053
00054 GtkWidget *view_log;
00055
00056 GtkWidget *add_pounce;
00057 GtkWidget *get_info;
00058 GtkWidget *warn;
00059 GtkWidget *invite;
00060
00061 GtkWidget *alias;
00062 GtkWidget *block;
00063 GtkWidget *add;
00064 GtkWidget *remove;
00065
00066 GtkWidget *insert_link;
00067 GtkWidget *insert_image;
00068
00069 GtkWidget *logging;
00070 GtkWidget *sounds;
00071 GtkWidget *show_formatting_toolbar;
00072
00073 GtkWidget *send_as;
00074
00075 GtkWidget *typing_icon;
00076
00077 GtkItemFactory *item_factory;
00078
00079 } menu;
00080
00081
00082 gboolean in_drag;
00083 gboolean in_predrag;
00084
00085 gint drag_min_x, drag_max_x, drag_min_y, drag_max_y;
00086
00087 gint drag_motion_signal;
00088 gint drag_leave_signal;
00089 };
00090
00094 struct _GaimGtkImPane
00095 {
00096 GtkWidget *warn;
00097 GtkWidget *block;
00098 GtkWidget *sep1;
00099 GtkWidget *sep2;
00100 GtkWidget *check;
00101 GtkWidget *progress;
00102
00103 gboolean a_virgin;
00104
00105
00106 GtkWidget *icon;
00107 gboolean animate;
00108 GdkPixbufAnimation *anim;
00109 GdkPixbufAnimationIter *iter;
00110 guint32 icon_timer;
00111 GtkWidget *save_icon;
00112 };
00113
00117 struct _GaimGtkChatPane
00118 {
00119 GtkWidget *count;
00120 GtkWidget *list;
00121 GtkWidget *invite;
00122 GtkWidget *topic_text;
00123 GtkWidget *sep;
00124 };
00125
00129 struct _GaimGtkConversation
00130 {
00131 gboolean make_sound;
00132 gboolean show_formatting_toolbar;
00133 gboolean has_font;
00134 char fontface[128];
00135 GdkColor fg_color;
00136 GdkColor bg_color;
00137
00138 GtkTooltips *tooltips;
00139
00140 GtkWidget *tab_cont;
00141 GtkWidget *tabby;
00142 GtkWidget *menu_tabby;
00143
00144 GtkWidget *imhtml;
00145 GtkTextBuffer *entry_buffer;
00146 GtkWidget *entry;
00147
00148 GtkWidget *add;
00149 GtkWidget *remove;
00150 GtkWidget *info;
00151 GtkWidget *send;
00152 GtkWidget *close;
00153 GtkWidget *icon;
00154 GtkWidget *tab_label;
00155 GtkWidget *menu_icon;
00156 GtkWidget *menu_label;
00157 GtkSizeGroup *sg;
00158
00159 GtkWidget *bbox;
00160 GtkWidget *sw;
00161
00162 GtkWidget *toolbar;
00163
00164 struct
00165 {
00166 GtkWidget *image;
00167 GtkWidget *log;
00168 GtkWidget *search;
00169
00170 } dialogs;
00171
00172 union
00173 {
00174 GaimGtkImPane *im;
00175 GaimGtkChatPane *chat;
00176
00177 } u;
00178 };
00179
00180 #define GAIM_GTK_WINDOW(win) \
00181 ((GaimGtkWindow *)(win)->ui_data)
00182
00183 #define GAIM_GTK_CONVERSATION(conv) \
00184 ((GaimGtkConversation *)(conv)->ui_data)
00185
00186 #define GAIM_IS_GTK_WINDOW(win) \
00187 (gaim_conv_window_get_ui_ops(win) == gaim_gtk_conversations_get_win_ui_ops())
00188
00189 #define GAIM_IS_GTK_CONVERSATION(conv) \
00190 (gaim_conversation_get_ui_ops(conv) == \
00191 gaim_gtk_conversations_get_conv_ui_ops())
00192
00195
00196
00197
00205 GaimConvWindowUiOps *gaim_gtk_conversations_get_win_ui_ops(void);
00206
00212 GaimConversationUiOps *gaim_gtk_conversations_get_conv_ui_ops(void);
00213
00219 void gaim_gtkconv_update_buddy_icon(GaimConversation *conv);
00220
00225 void gaim_gtkconv_update_font_buttons(void);
00226
00233 void gaim_gtkconv_update_font_colors(GaimConversation *conv);
00234
00241 void gaim_gtkconv_update_font_face(GaimConversation *conv);
00242
00247 void gaim_gtkconv_update_tabs(void);
00248
00253 void gaim_gtkconv_update_chat_button_style();
00254
00259 void gaim_gtkconv_update_im_button_style();
00260
00266 void gaim_gtkconv_update_buttons_by_protocol(GaimConversation *conv);
00267
00278 GaimConvWindow *gaim_gtkwin_get_at_xy(int x, int y);
00279
00289 int gaim_gtkconv_get_tab_at_xy(GaimConvWindow *win, int x, int y);
00290
00304 int gaim_gtkconv_get_dest_tab_at_xy(GaimConvWindow *win, int x, int y);
00305
00308
00310
00318 void *gaim_gtk_conversations_get_handle(void);
00319
00323 void gaim_gtk_conversations_init(void);
00324
00328 void gaim_gtk_conversations_uninit(void);
00329
00332 #endif