aboutsummaryrefslogtreecommitdiffstats
path: root/embed/ephy-embed.h
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpeseng@src.gnome.org>2002-12-31 03:29:24 +0800
committerMarco Pesenti Gritti <mpeseng@src.gnome.org>2002-12-31 03:29:24 +0800
commit6876ede98282c7db318089bfefb292aa59e55d48 (patch)
tree76b23252d04da232d0ebf22e53bfe3e022686af9 /embed/ephy-embed.h
downloadgsoc2013-epiphany-6876ede98282c7db318089bfefb292aa59e55d48.tar
gsoc2013-epiphany-6876ede98282c7db318089bfefb292aa59e55d48.tar.gz
gsoc2013-epiphany-6876ede98282c7db318089bfefb292aa59e55d48.tar.bz2
gsoc2013-epiphany-6876ede98282c7db318089bfefb292aa59e55d48.tar.lz
gsoc2013-epiphany-6876ede98282c7db318089bfefb292aa59e55d48.tar.xz
gsoc2013-epiphany-6876ede98282c7db318089bfefb292aa59e55d48.tar.zst
gsoc2013-epiphany-6876ede98282c7db318089bfefb292aa59e55d48.zip
Initial revision
Diffstat (limited to 'embed/ephy-embed.h')
-rw-r--r--embed/ephy-embed.h443
1 files changed, 443 insertions, 0 deletions
diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h
new file mode 100644
index 000000000..1de35d7aa
--- /dev/null
+++ b/embed/ephy-embed.h
@@ -0,0 +1,443 @@
+/*
+ * Copyright (C) 2000, 2001, 2002 Marco Pesenti Gritti
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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.
+ */
+
+#ifndef EPHY_EMBED_H
+#define EPHY_EMBED_H
+
+#include "ephy-embed-types.h"
+#include "ephy-embed-event.h"
+
+#include <glib-object.h>
+#include <glib.h>
+#include <gtk/gtkwidget.h>
+
+G_BEGIN_DECLS
+
+typedef struct EphyEmbedClass EphyEmbedClass;
+
+#define EPHY_EMBED_TYPE (ephy_embed_get_type ())
+#define EPHY_EMBED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EPHY_EMBED_TYPE, EphyEmbed))
+#define EPHY_EMBED_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), EPHY_EMBED_TYPE, EphyEmbedClass))
+#define IS_EPHY_EMBED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EPHY_EMBED_TYPE))
+#define IS_EPHY_EMBED_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), EPHY_EMBED_TYPE))
+#define EPHY_EMBED_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EPHY_EMBED_TYPE, EphyEmbedClass))
+
+typedef struct _EphyEmbed EphyEmbed;
+
+typedef enum
+{
+ EMBED_STATE_UNKNOWN = 0,
+ EMBED_STATE_START = 1 << 0,
+ EMBED_STATE_REDIRECTING = 1 << 1,
+ EMBED_STATE_TRANSFERRING = 1 << 2,
+ EMBED_STATE_NEGOTIATING = 1 << 3,
+ EMBED_STATE_STOP = 1 << 4,
+
+ EMBED_STATE_IS_REQUEST = 1 << 5,
+ EMBED_STATE_IS_DOCUMENT = 1 << 6,
+ EMBED_STATE_IS_NETWORK = 1 << 7,
+ EMBED_STATE_IS_WINDOW = 1 << 8
+} EmbedState;
+
+typedef enum
+{
+ EMBED_CLIPBOARD_CAP = 1 << 0,
+ EMBED_COOKIES_CAP = 1 << 1,
+ EMBED_LINKS_CAP = 1 << 2,
+ EMBED_ZOOM_CAP = 1 << 3,
+ EMBED_PRINT_CAP = 1 << 6,
+ EMBED_FIND_CAP = 1 << 7,
+ EMBED_SCROLL_CAP = 1 << 8,
+ EMBED_SECURITY_CAP = 1 << 9,
+ EMBED_CHARSET_CAP = 1 << 10,
+ EMBED_SHISTORY_CAP = 1 << 11,
+ EMBED_FINE_SCROLL_CAP = 1 << 12
+} EmbedCapabilities;
+
+typedef struct
+{
+ char *modification_date;
+
+ /* lists of hashtables with gvalues */
+ GList *images; /* url, alt, title, width, height */
+ GList *forms; /* action, type */
+ GList *links; /* url, title, type */
+ GList *stylesheets; /* url, title */
+} EmbedPageInfo;
+
+typedef enum
+{
+ EMBED_RELOAD_NORMAL = 1 << 1,
+ EMBED_RELOAD_BYPASSCACHE = 1 << 2,
+ EMBED_RELOAD_BYPASSPROXY = 1 << 3
+} EmbedReloadFlags;
+
+typedef enum
+{
+ DISPLAY_AS_SOURCE = 1U,
+ DISPLAY_NORMAL = 2U
+} EmbedDisplayType;
+
+typedef struct
+{
+ gchar *search_string;
+ gboolean backwards;
+ gboolean wrap;
+ gboolean entire_word;
+ gboolean match_case;
+ gboolean search_frames;
+ gboolean interactive;
+} EmbedFindInfo;
+
+typedef struct
+{
+ gboolean print_to_file;
+ gchar *printer;
+ gchar *file;
+ gint paper;
+ gdouble top_margin;
+ gdouble bottom_margin;
+ gdouble left_margin;
+ gdouble right_margin;
+ gint pages;
+ gint from_page;
+ gint to_page;
+ gint frame_type;
+ gint orientation;
+ gboolean print_color;
+
+ /*
+ * &T - title
+ * &U - Document URL
+ * &D - Date/Time
+ * &P - Page Number
+ * &PT - Page Number with total Number of Pages (example: 1 of 34)
+ *
+ * So, if headerLeftStr = "&T" the title and the document URL
+ * will be printed out on the top left-hand side of each page.
+ */
+ gchar *header_left_string;
+ gchar *header_center_string;
+ gchar *header_right_string;
+ gchar *footer_left_string;
+ gchar *footer_center_string;
+ gchar *footer_right_string;
+
+ gboolean preview;
+}
+EmbedPrintInfo;
+
+typedef enum
+{
+ PRINTPREVIEW_GOTO_PAGENUM = 0,
+ PRINTPREVIEW_PREV_PAGE = 1,
+ PRINTPREVIEW_NEXT_PAGE = 2,
+ PRINTPREVIEW_HOME = 3,
+ PRINTPREVIEW_END = 4
+} EmbedPrintPreviewNavType;
+
+typedef enum
+{
+ EMBED_SCROLL_UP,
+ EMBED_SCROLL_DOWN,
+ EMBED_SCROLL_LEFT,
+ EMBED_SCROLL_RIGHT
+} EmbedScrollDirection;
+
+typedef enum
+{
+ STATE_IS_UNKNOWN,
+ STATE_IS_INSECURE,
+ STATE_IS_BROKEN,
+ STATE_IS_SECURE_MED,
+ STATE_IS_SECURE_LOW,
+ STATE_IS_SECURE_HIGH
+} EmbedSecurityLevel;
+
+struct EphyEmbedClass
+{
+ GTypeInterface base_iface;
+
+ void (* favicon) (EphyEmbed *embed,
+ const char *location);
+ void (* link_message) (EphyEmbed *embed,
+ const char *link);
+ void (* js_status) (EphyEmbed *embed,
+ const char *status);
+ void (* location) (EphyEmbed *embed);
+ void (* title) (EphyEmbed *embed);
+ void (* progress) (EphyEmbed *embed,
+ const char *uri,
+ gint curprogress,
+ gint maxprogress);
+ void (* net_state) (EphyEmbed *embed,
+ const char *uri,
+ EmbedState state);
+ void (* new_window) (EphyEmbed *embed,
+ EphyEmbed **new_embed,
+ EmbedChromeMask chromemask);
+ void (* visibility) (EphyEmbed *embed,
+ gboolean visibility);
+ void (* destroy_brsr) (EphyEmbed *embed);
+ gint (* open_uri) (EphyEmbed *embed,
+ const char *uri);
+ void (* size_to) (EphyEmbed *embed,
+ gint width,
+ gint height);
+ gint (* dom_mouse_click) (EphyEmbed *embed,
+ EphyEmbedEvent *event);
+ gint (* dom_mouse_down) (EphyEmbed *embed,
+ EphyEmbedEvent *event);
+ void (* security_change) (EphyEmbed *embed,
+ EmbedSecurityLevel level);
+ void (* zoom_change) (EphyEmbed *embed,
+ guint new_zoom);
+
+ /* Methods */
+ void (* get_capabilities) (EphyEmbed *embed,
+ EmbedCapabilities *caps);
+ gresult (* load_url) (EphyEmbed *embed,
+ const char *url);
+ gresult (* stop_load) (EphyEmbed *embed);
+ gresult (* can_go_back) (EphyEmbed *embed);
+ gresult (* can_go_forward) (EphyEmbed *embed);
+ gresult (* can_go_up) (EphyEmbed *embed);
+ gresult (* get_go_up_list) (EphyEmbed *embed, GSList **l);
+ gresult (* go_back) (EphyEmbed *embed);
+ gresult (* go_forward) (EphyEmbed *embed);
+ gresult (* go_up) (EphyEmbed *embed);
+ gresult (* render_data) (EphyEmbed *embed,
+ const char *data,
+ guint32 len,
+ const char *base_uri,
+ const char *mime_type);
+ gresult (* open_stream) (EphyEmbed *embed,
+ const char *base_uri,
+ const char *mime_type);
+ gresult (* append_data) (EphyEmbed *embed,
+ const char *data,
+ guint32 len);
+ gresult (* close_stream) (EphyEmbed *embed);
+ gresult (* get_title) (EphyEmbed *embed,
+ char **title);
+ gresult (* get_location) (EphyEmbed *embed,
+ gboolean toplevel,
+ gboolean requested,
+ char **location);
+ gresult (* reload) (EphyEmbed *embed,
+ EmbedReloadFlags flags);
+ gresult (* copy_page) (EphyEmbed *dest,
+ EphyEmbed *source,
+ EmbedDisplayType display_type);
+ gresult (* grab_focus) (EphyEmbed *embed);
+ gresult (* get_link_tags) (EphyEmbed *embed,
+ const char *link_type,
+ GList **tags);
+ gresult (* zoom_set) (EphyEmbed *embed,
+ int zoom,
+ gboolean reflow);
+ gresult (* zoom_get) (EphyEmbed *embed,
+ int *zoom);
+ gresult (* selection_can_cut) (EphyEmbed *embed);
+ gresult (* selection_can_copy) (EphyEmbed *embed);
+ gresult (* can_paste) (EphyEmbed *embed);
+ gresult (* selection_cut) (EphyEmbed *embed);
+ gresult (* selection_copy) (EphyEmbed *embed);
+ gresult (* paste) (EphyEmbed *embed);
+ gresult (* select_all) (EphyEmbed *embed);
+ gresult (* shistory_count) (EphyEmbed *embed,
+ int *count);
+ gresult (* shistory_get_nth) (EphyEmbed *embed,
+ int nth,
+ gboolean is_relative,
+ char **url,
+ char **title);
+ gresult (* shistory_get_pos) (EphyEmbed *embed,
+ int *pos);
+ gresult (* shistory_go_nth) (EphyEmbed *embed,
+ int nth);
+ gboolean (* shistory_copy) (EphyEmbed *source,
+ EphyEmbed *dest);
+ gresult (* scroll) (EphyEmbed *embed,
+ EmbedScrollDirection direction);
+ gresult (* fine_scroll) (EphyEmbed *embed,
+ int horiz, int vert);
+ gresult (* get_security_level) (EphyEmbed *embed,
+ EmbedSecurityLevel *level,
+ char **description);
+ gresult (* find) (EphyEmbed *embed,
+ EmbedFindInfo *find);
+ gresult (* print) (EphyEmbed *embed,
+ EmbedPrintInfo *info);
+ gresult (* print_preview_close) (EphyEmbed *embed);
+ gresult (* print_preview_num_pages) (EphyEmbed *embed,
+ gint *retNum);
+ gresult (* print_preview_navigate) (EphyEmbed *embed,
+ EmbedPrintPreviewNavType navType,
+ gint pageNum);
+ gresult (* set_charset) (EphyEmbed *embed,
+ const char *charset);
+};
+
+GType ephy_embed_get_type (void);
+
+/* Base */
+
+EphyEmbed *ephy_embed_new (GObject *shell);
+
+void ephy_embed_get_capabilities (EphyEmbed *embed,
+ EmbedCapabilities *caps);
+
+gresult ephy_embed_load_url (EphyEmbed *embed,
+ const char *url);
+
+gresult ephy_embed_stop_load (EphyEmbed *embed);
+
+gresult ephy_embed_can_go_back (EphyEmbed *embed);
+
+gresult ephy_embed_can_go_forward (EphyEmbed *embed);
+
+gresult ephy_embed_can_go_up (EphyEmbed *embed);
+
+gresult ephy_embed_get_go_up_list (EphyEmbed *embed,
+ GSList **l);
+
+gresult ephy_embed_go_back (EphyEmbed *embed);
+
+gresult ephy_embed_go_forward (EphyEmbed *embed);
+
+gresult ephy_embed_go_up (EphyEmbed *embed);
+
+gresult ephy_embed_render_data (EphyEmbed *embed,
+ const char *data,
+ guint32 len,
+ const char *base_uri,
+ const char *mime_type);
+
+gresult ephy_embed_open_stream (EphyEmbed *embed,
+ const char *base_uri,
+ const char *mime_type);
+
+gresult ephy_embed_append_data (EphyEmbed *embed,
+ const char *data,
+ guint32 len);
+
+gresult ephy_embed_close_stream (EphyEmbed *embed);
+
+gresult ephy_embed_get_title (EphyEmbed *embed,
+ char **title);
+
+gresult ephy_embed_get_location (EphyEmbed *embed,
+ gboolean toplevel,
+ gboolean requested,
+ char **location);
+
+gresult ephy_embed_reload (EphyEmbed *embed,
+ EmbedReloadFlags flags);
+
+gresult ephy_embed_copy_page (EphyEmbed *dest,
+ EphyEmbed *source,
+ EmbedDisplayType display_type);
+
+gresult ephy_embed_grab_focus (EphyEmbed *embed);
+
+/* Link */
+gresult ephy_embed_get_favicon_location (EphyEmbed *embed,
+ char **url);
+
+gresult ephy_embed_get_link_tags (EphyEmbed *embed,
+ const char *link_type,
+ GList **tags);
+
+/* Zoom */
+gresult ephy_embed_zoom_set (EphyEmbed *embed,
+ int zoom,
+ gboolean reflow);
+
+gresult ephy_embed_zoom_get (EphyEmbed *embed,
+ int *zoom);
+
+/* Clipboard */
+gresult ephy_embed_selection_can_cut (EphyEmbed *embed);
+
+gresult ephy_embed_selection_can_copy (EphyEmbed *embed);
+
+gresult ephy_embed_can_paste (EphyEmbed *embed);
+
+gresult ephy_embed_selection_cut (EphyEmbed *embed);
+
+gresult ephy_embed_selection_copy (EphyEmbed *embed);
+
+gresult ephy_embed_paste (EphyEmbed *embed);
+
+gresult ephy_embed_select_all (EphyEmbed *embed);
+
+/* Session history */
+gresult ephy_embed_shistory_count (EphyEmbed *embed,
+ int *count);
+
+gresult ephy_embed_shistory_get_nth (EphyEmbed *embed,
+ int nth,
+ gboolean is_relative,
+ char **url,
+ char **title);
+
+gresult ephy_embed_shistory_get_pos (EphyEmbed *embed,
+ int *pos);
+
+gresult ephy_embed_shistory_go_nth (EphyEmbed *embed,
+ int nth);
+
+gboolean ephy_embed_shistory_copy (EphyEmbed *source,
+ EphyEmbed *dest);
+
+/* Utils */
+
+gresult ephy_embed_scroll (EphyEmbed *embed,
+ EmbedScrollDirection direction);
+
+gresult ephy_embed_fine_scroll (EphyEmbed *embed,
+ int horiz, int vert);
+
+gresult ephy_embed_get_security_level (EphyEmbed *embed,
+ EmbedSecurityLevel *level,
+ char **description);
+
+gresult ephy_embed_find (EphyEmbed *embed,
+ EmbedFindInfo *find);
+
+gresult ephy_embed_set_charset (EphyEmbed *embed,
+ const char *charset);
+
+/* Printing */
+
+gresult ephy_embed_print (EphyEmbed *embed,
+ EmbedPrintInfo *info);
+
+gresult ephy_embed_print_preview_close (EphyEmbed *embed);
+
+gresult ephy_embed_print_preview_num_pages (EphyEmbed *embed,
+ gint *retNum);
+
+gresult ephy_embed_print_preview_navigate (EphyEmbed *embed,
+ EmbedPrintPreviewNavType navType,
+ gint pageNum);
+
+G_END_DECLS
+
+#endif