gtkconvwin.h

Go to the documentation of this file.
00001 
00025 #ifndef _PIDGIN_CONVERSATION_WINDOW_H_
00026 #define _PIDGIN_CONVERSATION_WINDOW_H_
00027 
00028 typedef struct _PidginWindow       PidginWindow;
00029 
00030 
00031 /**************************************************************************
00032  * @name Structures
00033  **************************************************************************/
00040 struct _PidginWindow
00041 {
00042     GtkWidget *window;           
00043     GtkWidget *notebook;         
00044     GList *gtkconvs;
00045 
00046     struct
00047     {
00048         GtkWidget *menubar;
00049 
00050         GtkWidget *view_log;
00051 
00052         GtkWidget *send_file;
00053         GtkWidget *add_pounce;
00054         GtkWidget *get_info;
00055         GtkWidget *invite;
00056 
00057         GtkWidget *alias;
00058         GtkWidget *block;
00059         GtkWidget *unblock;
00060         GtkWidget *add;
00061         GtkWidget *remove;
00062 
00063         GtkWidget *insert_link;
00064         GtkWidget *insert_image;
00065 
00066         GtkWidget *logging;
00067         GtkWidget *sounds;
00068         GtkWidget *show_formatting_toolbar;
00069         GtkWidget *show_timestamps;
00070         GtkWidget *show_icon;
00071 
00072         GtkWidget *send_to;
00073 
00074         GtkWidget *tray;
00075 
00076         GtkWidget *typing_icon;
00077 
00078         GtkItemFactory *item_factory;
00079 
00080     } menu;
00081 
00082     struct
00083     {
00084         GtkWidget *search;
00085 
00086     } dialogs;
00087 
00088     /* Tab dragging stuff. */
00089     gboolean in_drag;
00090     gboolean in_predrag;
00091 
00092     gint drag_tab;
00093 
00094     gint drag_min_x, drag_max_x, drag_min_y, drag_max_y;
00095 
00096     gint drag_motion_signal;
00097     gint drag_leave_signal;
00098 };
00099 
00102 /**************************************************************************
00103  * @name GTK+ Conversation Window API
00104  **************************************************************************/
00107 PidginWindow * pidgin_conv_window_new(void);
00108 void pidgin_conv_window_destroy(PidginWindow *win);
00109 GList *pidgin_conv_windows_get_list(void);
00110 void pidgin_conv_window_show(PidginWindow *win);
00111 void pidgin_conv_window_hide(PidginWindow *win);
00112 void pidgin_conv_window_raise(PidginWindow *win);
00113 void pidgin_conv_window_switch_gtkconv(PidginWindow *win, PidginConversation *gtkconv);
00114 void pidgin_conv_window_add_gtkconv(PidginWindow *win, PidginConversation *gtkconv);
00115 void pidgin_conv_window_remove_gtkconv(PidginWindow *win, PidginConversation *gtkconv);
00116 PidginConversation *pidgin_conv_window_get_gtkconv_at_index(const PidginWindow *win, int index);
00117 PidginConversation *pidgin_conv_window_get_active_gtkconv(const PidginWindow *win);
00118 PurpleConversation *pidgin_conv_window_get_active_conversation(const PidginWindow *win);
00119 gboolean pidgin_conv_window_is_active_conversation(const PurpleConversation *conv);
00120 gboolean pidgin_conv_window_has_focus(PidginWindow *win);
00121 PidginWindow *pidgin_conv_window_get_at_xy(int x, int y);
00122 GList *pidgin_conv_window_get_gtkconvs(PidginWindow *win);
00123 guint pidgin_conv_window_get_gtkconv_count(PidginWindow *win);
00124 
00125 PidginWindow *pidgin_conv_window_first_with_type(PurpleConversationType type);
00126 PidginWindow *pidgin_conv_window_last_with_type(PurpleConversationType type);
00127 
00130 /**************************************************************************
00131  * @name GTK+ Conversation Placement API
00132  **************************************************************************/
00135 typedef void (*PidginConvPlacementFunc)(PidginConversation *);
00136 
00137 GList *pidgin_conv_placement_get_options(void);
00138 void pidgin_conv_placement_add_fnc(const char *id, const char *name, PidginConvPlacementFunc fnc);
00139 void pidgin_conv_placement_remove_fnc(const char *id);
00140 const char *pidgin_conv_placement_get_name(const char *id);
00141 PidginConvPlacementFunc pidgin_conv_placement_get_fnc(const char *id);
00142 void pidgin_conv_placement_set_current_func(PidginConvPlacementFunc func);
00143 PidginConvPlacementFunc pidgin_conv_placement_get_current_func(void);
00144 void pidgin_conv_placement_place(PidginConversation *gtkconv);
00145 
00148 #endif /* _PIDGIN_CONVERSATION_WINDOW_H_ */