/* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Christopher Blizzard. Portions created by Christopher Blizzard are Copyright (C) Christopher Blizzard. All Rights Reserved. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Christopher Blizzard * Ramiro Estrugo * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #ifndef gtkmozembed_h #define gtkmozembed_h #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include #ifdef MOZILLA_CLIENT #include "nscore.h" #ifdef _IMPL_GTKMOZEMBED #define GTKMOZEMBED_API(type) NS_EXPORT_(type) #else #define GTKMOZEMBED_API(type) NS_IMPORT_(type) #endif #else #define GTKMOZEMBED_API(type) type #endif #define GTK_TYPE_MOZ_EMBED (gtk_moz_embed_get_type()) #define GTK_MOZ_EMBED(obj) GTK_CHECK_CAST((obj), GTK_TYPE_MOZ_EMBED, GtkMozEmbed) #define GTK_MOZ_EMBED_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), GTK_TYPE_MOZ_EMBED, GtkMozEmbedClass) #define GTK_IS_MOZ_EMBED(obj) GTK_CHECK_TYPE((obj), GTK_TYPE_MOZ_EMBED) #define GTK_IS_MOZ_EMBED_CLASS(klass) GTK_CHECK_CLASS_TYPE((klass), GTK_TYPE_MOZ_EMBED) typedef struct _GtkMozEmbed GtkMozEmbed; typedef struct _GtkMozEmbedClass GtkMozEmbedClass; struct _GtkMozEmbed { GtkBin bin; void *data; }; struct _GtkMozEmbedClass { GtkBinClass parent_class; void (* link_message) (GtkMozEmbed *embed); void (* js_status) (GtkMozEmbed *embed); void (* location) (GtkMozEmbed *embed); void (* title) (GtkMozEmbed *embed); void (* progress) (GtkMozEmbed *embed, gint curprogress, gint maxprogress); void (* progress_all) (GtkMozEmbed *embed, const char *aURI, gint curprogress, gint maxprogress); void (* net_state) (GtkMozEmbed *embed, gint state, guint status); void (* net_state_all) (GtkMozEmbed *embed, const char *aURI, gint state, guint status); void (* net_start) (GtkMozEmbed *embed); void (* net_stop) (GtkMozEmbed *embed); void (* new_window) (GtkMozEmbed *embed, GtkMozEmbed **newEmbed, guint chromemask); void (* visibility) (GtkMozEmbed *embed, gboolean visibility); void (* destroy_brsr) (GtkMozEmbed *embed); gint (* open_uri) (GtkMozEmbed *embed, const char *aURI); void (* size_to) (GtkMozEmbed *embed, gint width, gint height); gint (* dom_key_down) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_key_press) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_key_up) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_mouse_down) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_mouse_up) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_mouse_click) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_mouse_dbl_click) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_mouse_over) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_mouse_out) (GtkMozEmbed *embed, gpointer dom_event); void (* security_change) (GtkMozEmbed *embed, gpointer request, guint state); void (* status_change) (GtkMozEmbed *embed, gpointer request, gint status, gpointer message); gint (* dom_activate) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_focus_in) (GtkMozEmbed *embed, gpointer dom_event); gint (* dom_focus_out) (GtkMozEmbed *embed, gpointer dom_event); }; GTKMOZEMBED_API(GtkType) gtk_moz_embed_get_type (void); GTKMOZEMBED_API(GtkWidget*) gtk_moz_embed_new (void); GTKMOZEMBED_API(void) gtk_moz_embed_push_startup (void); GTKMOZEMBED_API(void) gtk_moz_embed_pop_startup (void); GTKMOZEMBED_API(void) gtk_moz_embed_set_comp_path (const char *aPath); GTKMOZEMBED_API(void) gtk_moz_embed_set_profile_path (const char *aDir, const char *aName); GTKMOZEMBED_API(void) gtk_moz_embed_load_url (GtkMozEmbed *embed, const char *url); GTKMOZEMBED_API(void) gtk_moz_embed_stop_load (GtkMozEmbed *embed); GTKMOZEMBED_API(gboolean) gtk_moz_embed_can_go_back (GtkMozEmbed *embed); GTKMOZEMBED_API(gboolean) gtk_moz_embed_can_go_forward (GtkMozEmbed *embed); GTKMOZEMBED_API(void) gtk_moz_embed_go_back (GtkMozEmbed *embed); GTKMOZEMBED_API(void) gtk_moz_embed_go_forward (GtkMozEmbed *embed); GTKMOZEMBED_API(void) gtk_moz_embed_render_data (GtkMozEmbed *embed, const char *data, guint32 len, const char *base_uri, const char *mime_type); GTKMOZEMBED_API(void) gtk_moz_embed_open_stream (GtkMozEmbed *embed, const char *base_uri, const char *mime_type); GTKMOZEMBED_API(void) gtk_moz_embed_append_data (GtkMozEmbed *embed, const char *data, guint32 len); GTKMOZEMBED_API(void) gtk_moz_embed_close_stream (GtkMozEmbed *embed); GTKMOZEMBED_API(char*) gtk_moz_embed_get_link_message (GtkMozEmbed *embed); GTKMOZEMBED_API(char*) gtk_moz_embed_get_js_status (GtkMozEmbed *embed); GTKMOZEMBED_API(char*) gtk_moz_embed_get_title (GtkMozEmbed *embed); GTKMOZEMBED_API(char*) gtk_moz_embed_get_location (GtkMozEmbed *embed); GTKMOZEMBED_API(void) gtk_moz_embed_reload (GtkMozEmbed *embed, gint32 flags); GTKMOZEMBED_API(void) gtk_moz_embed_set_chrome_mask (GtkMozEmbed *embed, guint32 flags); GTKMOZEMBED_API(guint32) gtk_moz_embed_get_chrome_mask (GtkMozEmbed *embed); /* enum types */ #define GTK_TYPE_MOZ_EMBED_PROGRESS_FLAGS \ (gtk_moz_embed_progress_flags_get_type()) #define GTK_TYPE_MOZ_EMBED_STATUS_ENUMS \ (gtk_moz_embed_status_enums_get_type()) #define GTK_TYPE_MOZ_EMBED_RELOAD_FLAGS \ (gtk_moz_embed_reload_flags_get_type()) #define GTK_TYPE_MOZ_EMBED_CHROME_FLAGS \ (gtk_moz_embed_chrome_flags_get_type()) GTKMOZEMBED_API(GtkType) gtk_moz_embed_progress_flags_get_type (void); GTKMOZEMBED_API(GtkType) gtk_moz_embed_status_enums_get_type (void); GTKMOZEMBED_API(GtkType) gtk_moz_embed_reload_flags_get_type (void); GTKMOZEMBED_API(GtkType) gtk_moz_embed_chrome_flags_get_type (void); /* These are straight out of nsIWebProgressListener.h */ typedef enum { GTK_MOZ_EMBED_FLAG_START = 1, GTK_MOZ_EMBED_FLAG_REDIRECTING = 2, GTK_MOZ_EMBED_FLAG_TRANSFERRING = 4, GTK_MOZ_EMBED_FLAG_NEGOTIATING = 8, GTK_MOZ_EMBED_FLAG_STOP = 16, GTK_MOZ_EMBED_FLAG_IS_REQUEST = 65536, GTK_MOZ_EMBED_FLAG_IS_DOCUMENT = 131072, GTK_MOZ_EMBED_FLAG_IS_NETWORK = 262144, GTK_MOZ_EMBED_FLAG_IS_WINDOW = 524288, GTK_MOZ_EMBED_FLAG_RESTORING = 16777216 } GtkMozEmbedProgressFlags; /* These are from various networking headers */ typedef enum { /* NS_ERROR_UNKNOWN_HOST */ GTK_MOZ_EMBED_STATUS_FAILED_DNS = 2152398878U, /* NS_ERROR_CONNECTION_REFUSED */ GTK_MOZ_EMBED_STATUS_FAILED_CONNECT = 2152398861U, /* NS_ERROR_NET_TIMEOUT */ GTK_MOZ_EMBED_STATUS_FAILED_TIMEOUT = 2152398862U, /* NS_BINDING_ABORTED */ GTK_MOZ_EMBED_STATUS_FAILED_USERCANCELED = 2152398850U } GtkMozEmbedStatusFlags; /* These used to be straight out of nsIWebNavigation.h until the API changed. Now there's a mapping table that maps these values to the internal values. */ typedef enum { GTK_MOZ_EMBED_FLAG_RELOADNORMAL = 0, GTK_MOZ_EMBED_FLAG_RELOADBYPASSCACHE = 1, GTK_MOZ_EMBED_FLAG_RELOADBYPASSPROXY = 2, GTK_MOZ_EMBED_FLAG_RELOADBYPASSPROXYANDCACHE = 3, GTK_MOZ_EMBED_FLAG_RELOADCHARSETCHANGE = 4 } GtkMozEmbedReloadFlags; /* These are straight out of nsIWebBrowserChrome.h */ typedef enum { GTK_MOZ_EMBED_FLAG_DEFAULTCHROME = 1U, GTK_MOZ_EMBED_FLAG_WINDOWBORDERSON = 2U, GTK_MOZ_EMBED_FLAG_WINDOWCLOSEON = 4U, GTK_MOZ_EMBED_FLAG_WINDOWRESIZEON = 8U, GTK_MOZ_EMBED_FLAG_MENUBARON = 16U, GTK_MOZ_EMBED_FLAG_TOOLBARON = 32U, GTK_MOZ_EMBED_FLAG_LOCATIONBARON = 64U, GTK_MOZ_EMBED_FLAG_STATUSBARON = 128U, GTK_MOZ_EMBED_FLAG_PERSONALTOOLBARON = 256U, GTK_MOZ_EMBED_FLAG_SCROLLBARSON = 512U, GTK_MOZ_EMBED_FLAG_TITLEBARON = 1024U, GTK_MOZ_EMBED_FLAG_EXTRACHROMEON = 2048U, GTK_MOZ_EMBED_FLAG_ALLCHROME = 4094U, GTK_MOZ_EMBED_FLAG_WINDOWRAISED = 33554432U, GTK_MOZ_EMBED_FLAG_WINDOWLOWERED = 67108864U, GTK_MOZ_EMBED_FLAG_CENTERSCREEN = 134217728U, GTK_MOZ_EMBED_FLAG_DEPENDENT = 268435456U, GTK_MOZ_EMBED_FLAG_MODAL = 536870912U, GTK_MOZ_EMBED_FLAG_OPENASDIALOG = 1073741824U, GTK_MOZ_EMBED_FLAG_OPENASCHROME = 2147483648U } GtkMozEmbedChromeFlags; /* this is a singleton object that you can hook up to to get signals that are not handed out on a per widget basis. */ #define GTK_TYPE_MOZ_EMBED_SINGLE (gtk_moz_embed_single_get_type()) #define GTK_MOZ_EMBED_SINGLE(obj) GTK_CHECK_CAST((obj), GTK_TYPE_MOZ_EMBED_SINGLE, GtkMozEmbedSingle) #define GTK_MOZ_EMBED_SINGLE_CLASS(klass) GTK_CHEK_CLASS_CAST((klass), GTK_TYPE_MOZ_EMBED_SINGLE, GtkMozEmbedSingleClass) #define GTK_IS_MOZ_EMBED_SINGLE(obj) GTK_CHECK_TYPE((obj), GTK_TYPE_MOZ_EMBED_SINGLE) #define GTK_IS_MOZ_EMBED_SINGLE_CLASS(klass) GTK_CHECK_CLASS_TYPE((klass), GTK_TYPE_MOZ_EMBED) typedef struct _GtkMozEmbedSingle GtkMozEmbedSingle; typedef struct _GtkMozEmbedSingleClass GtkMozEmbedSingleClass; struct _GtkMozEmbedSingle { GtkObject object; void *data; }; struct _GtkMozEmbedSingleClass { GtkObjectClass parent_class; void (* new_window_orphan) (GtkMozEmbedSingle *embed, GtkMozEmbed **newEmbed, guint chromemask); }; GTKMOZEMBED_API(GtkType) gtk_moz_embed_single_get_type (void); GTKMOZEMBED_API(GtkMozEmbedSingle *) gtk_moz_embed_single_get (void); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* gtkmozembed_h */