Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

gtkconv.h

Go to the documentation of this file.
00001 
00026 #ifndef _GAIM_GTK_CONVERSATION_H_
00027 #define _GAIM_GTK_CONVERSATION_H_
00028 
00029 #include "conversation.h"
00030 
00031 /**************************************************************************
00032  * @name Structures
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     /* Tab dragging stuff. */
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     /* Buddy icon stuff */
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; /* "x" on the tab */
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  * @name GTK+ Conversation API
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 /* _GAIM_GTK_CONVERSATION_H_ */

Generated on Tue Aug 3 17:36:34 2004 for gaim by doxygen 1.3.4