00001
00025 #ifndef _PIDGIN_CONVERSATION_WINDOW_H_
00026 #define _PIDGIN_CONVERSATION_WINDOW_H_
00027
00028 typedef struct _PidginWindow PidginWindow;
00029
00030
00031
00032
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
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
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
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