]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-ui-utils.h
add myself to AUTHORS
[empathy.git] / libempathy-gtk / empathy-ui-utils.h
index 24ab01fb414baa9a6d6dff16532edd489c5de6f3..0eacd49b897e9af114a7ffe3da6f4b59725fe325 100644 (file)
  *
  * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- * 
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA  02110-1301  USA
+ *
  * Authors: Mikael Hallendal <micke@imendio.com>
  *          Richard Hult <richard@imendio.com>
  *          Martyn Russell <martyn@imendio.com>
  *          Xavier Claessens <xclaesse@gmail.com>
- * 
+ *          Jonny Lamb <jonny.lamb@collabora.co.uk>
+ *
  *          Part of this file is copied from GtkSourceView (gtksourceiter.c):
  *          Paolo Maggi
  *          Jeroen Zwartepoorte
 #define __EMPATHY_UI_UTILS_H__
 
 #include <gtk/gtk.h>
-#include <glade/glade.h>
-
-#include <libmissioncontrol/mc-account.h>
-#include <libmissioncontrol/mc-profile.h>
 
 #include <libempathy/empathy-contact.h>
+#include <libempathy/empathy-ft-handler.h>
 
 #include "empathy-chat-view.h"
 
 G_BEGIN_DECLS
 
-#define G_STR_EMPTY(x) ((x) == NULL || (x)[0] == '\0')
+#define EMPATHY_RECT_IS_ON_SCREEN(x,y,w,h) ((x) + (w) > 0 && \
+                                           (y) + (h) > 0 && \
+                                           (x) < gdk_screen_width () && \
+                                           (y) < gdk_screen_height ())
+
+void            empathy_gtk_init                        (void);
+GRegex *        empathy_uri_regex_dup_singleton         (void);
 
 /* Glade */
-void            empathy_glade_get_file_simple           (const gchar      *filename,
-                                                        const gchar      *root,
-                                                        const gchar      *domain,
-                                                        const gchar      *first_required_widget,
-                                                        ...);
-GladeXML *      empathy_glade_get_file                  (const gchar      *filename,
-                                                        const gchar      *root,
-                                                        const gchar      *domain,
-                                                        const gchar      *first_required_widget,
+GtkBuilder *    empathy_builder_get_file                (const gchar      *filename,
+                                                        const gchar      *first_object,
                                                         ...);
-void            empathy_glade_connect                   (GladeXML         *gui,
+void            empathy_builder_connect                 (GtkBuilder       *gui,
                                                         gpointer          user_data,
-                                                        gchar            *first_widget,
-                                                        ...);
-void            empathy_glade_setup_size_group          (GladeXML         *gui,
-                                                        GtkSizeGroupMode  mode,
-                                                        gchar            *first_widget,
+                                                        gchar            *first_object,
                                                         ...);
+GtkWidget     *empathy_builder_unref_and_keep_widget    (GtkBuilder       *gui,
+                                                        GtkWidget        *root);
+
 /* Pixbufs */
-const gchar * empathy_icon_name_from_account            (McAccount        *account);
-const gchar * empathy_icon_name_for_presence            (McPresence        presence);
+const gchar * empathy_icon_name_for_presence            (TpConnectionPresenceType  presence);
 const gchar * empathy_icon_name_for_contact             (EmpathyContact   *contact);
 GdkPixbuf *   empathy_pixbuf_from_data                  (gchar            *data,
                                                         gsize             data_size);
+GdkPixbuf *   empathy_pixbuf_from_data_and_mime         (gchar            *data,
+                                                        gsize             data_size,
+                                                        gchar           **mime_type);
 GdkPixbuf *   empathy_pixbuf_from_avatar_scaled         (EmpathyAvatar    *avatar,
                                                         gint              width,
                                                         gint              height);
 GdkPixbuf *   empathy_pixbuf_avatar_from_contact_scaled (EmpathyContact   *contact,
                                                         gint              width,
                                                         gint              height);
-GdkPixbuf * empathy_pixbuf_scale_down_if_necessary      (GdkPixbuf        *pixbuf,
+GdkPixbuf *   empathy_pixbuf_scale_down_if_necessary    (GdkPixbuf        *pixbuf,
                                                         gint              max_size);
-GdkPixbuf * empathy_pixbuf_from_icon_name               (const gchar      *icon_name,
+GdkPixbuf *   empathy_pixbuf_from_icon_name             (const gchar      *icon_name,
+                                                        GtkIconSize       icon_size);
+GdkPixbuf *   empathy_pixbuf_from_icon_name_sized       (const gchar      *icon_name,
+                                                        gint              size);
+gchar *       empathy_filename_from_icon_name           (const gchar      *icon_name,
                                                         GtkIconSize       icon_size);
+
 /* Text view */
 gboolean    empathy_text_iter_forward_search            (const GtkTextIter*iter,
                                                         const gchar      *str,
@@ -98,17 +101,70 @@ void        empathy_window_present                      (GtkWindow        *windo
 void        empathy_window_iconify                      (GtkWindow        *window,
                                                         GtkStatusIcon    *status_icon);
 GtkWindow * empathy_get_toplevel_window                 (GtkWidget        *widget);
-void        empathy_url_show                            (const char       *url);
+void        empathy_url_show                            (GtkWidget        *parent,
+                                                        const char       *url);
 void        empathy_toggle_button_set_state_quietly     (GtkWidget        *widget,
                                                         GCallback         callback,
                                                         gpointer          user_data,
                                                         gboolean          active);
 GtkWidget * empathy_link_button_new                     (const gchar      *url,
                                                         const gchar      *title);
-GtkTextTag *empathy_text_buffer_tag_set                 (GtkTextBuffer *buffer,
-                                                        const gchar   *tag_name,
-                                                        const gchar   *first_property_name,
-                                                        ...);
+
+void        empathy_send_file                           (EmpathyContact   *contact,
+                                                        GFile            *file);
+void        empathy_send_file_from_uri_list             (EmpathyContact   *contact,
+                                                        const gchar      *uri_list);
+void        empathy_send_file_with_file_chooser         (EmpathyContact   *contact);
+void        empathy_receive_file_with_file_chooser      (EmpathyFTHandler *handler);
+
+gchar *     empathy_make_absolute_url                   (const gchar *url);
+gchar *     empathy_make_absolute_url_len               (const gchar *url,
+                                                        guint len);
+
+/* String parser */
+typedef struct _EmpathyStringParser EmpathyStringParser;
+
+typedef void (*EmpathyStringReplace) (const gchar *text,
+                                     gssize len,
+                                     gpointer match_data,
+                                     gpointer user_data);
+typedef void (*EmpathyStringMatch) (const gchar *text,
+                                   gssize len,
+                                   EmpathyStringReplace replace_func,
+                                   EmpathyStringParser *sub_parsers,
+                                   gpointer user_data);
+
+struct _EmpathyStringParser {
+       EmpathyStringMatch match_func;
+       EmpathyStringReplace replace_func;
+};
+
+void
+empathy_string_parser_substr (const gchar *text,
+                             gssize len,
+                             EmpathyStringParser *parsers,
+                             gpointer user_data);
+
+void
+empathy_string_match_link (const gchar *text,
+                          gssize len,
+                          EmpathyStringReplace replace_func,
+                          EmpathyStringParser *sub_parsers,
+                          gpointer user_data);
+
+void
+empathy_string_match_smiley (const gchar *text,
+                            gssize len,
+                            EmpathyStringReplace replace_func,
+                            EmpathyStringParser *sub_parsers,
+                            gpointer user_data);
+
+void
+empathy_string_match_all (const gchar *text,
+                         gssize len,
+                         EmpathyStringReplace replace_func,
+                         EmpathyStringParser *sub_parsers,
+                         gpointer user_data);
 
 G_END_DECLS