1/* gtkmozembed.vala
2 *
3 * Copyright (C) 2007  Alberto Ruiz
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 * Lesser General Public License for more details.
14
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
18 *
19 * Author:
20 * 	Alberto Ruiz <aruiz@gnome.org>
21 */
22
23[CCode (cprefix = "Gtk", lower_case_cprefix = "gtk_")]
24namespace Gtk {
25	[CCode (cprefix = "GTK_MOZ_EMBED_FLAG_", cheader_filename = "gtkembedmoz/gtkmozembed.h")]
26	public enum MozEmbedProgressFlags {
27		START,
28  		REDIRECTING,
29		TRANSFERRING,
30		NEGOTIATING,
31		STOP,
32		IS_REQUEST,
33		IS_DOCUMENT,
34		IS_NETWORK,
35		IS_WINDOW,
36		RESTORING,
37	}
38	[CCode (cprefix = "GTK_MOZ_EMBED_STATUS_", cheader_filename = "gtkembedmoz/gtkmozembed.h")]
39	public enum MozEmbedStatusFlags
40	{
41		FAILED_DNS,
42		FAILED_CONNECT,
43		FAILED_TIMEOUT,
44		FAILED_USERCANCELED,
45	}
46	[CCode (cprefix = "GTK_MOZ_EMBED_FLAG_", cheader_filename = "gtkembedmoz/gtkmozembed.h")]
47	public enum MozEmbedReloadFlags
48	{
49		RELOADNORMAL,
50		RELOADBYPASSCACHE,
51		RELOADBYPASSPROXY,
52		RELOADBYPASSPROXYANDCACHE,
53		RELOADCHARSETCHANGE,
54	}
55	[CCode (cprefix = "GTK_MOZ_EMBED_FLAG_", cheader_filename = "gtkembedmoz/gtkmozembed.h")]
56	public enum MozEmbedChromeFlags
57	{
58		DEFAULTCHROME,
59		WINDOWBORDERSON,
60		WINDOWCLOSEON,
61		WINDOWRESIZEON,
62		MENUBARON,
63		TOOLBARON,
64		LOCATIONBARON,
65		STATUSBARON,
66		PERSONALTOOLBARON,
67		SCROLLBARSON,
68		TITLEBARON,
69		EXTRACHROMEON,
70		ALLCHROME,
71		WINDOWRAISED,
72		WINDOWLOWERED,
73		CENTERSCREEN,
74		DEPENDENT,
75		MODAL,
76		OPENASDIALOG,
77		OPENASCHROME,
78	}
79	[CCode (cheader_filename = "gtkembedmoz/gtkmozembed.h")]
80	public class MozEmbed : Gtk.Bin {
81		public MozEmbed ();
82		public void load_url (string url);
83
84		public void stop_load ();
85		public unowned bool can_go_back ();
86		public unowned bool can_go_forward ();
87		public void go_back ();
88		public void go_forward ();
89
90		public void render_data (string data, uint32 len, string base_uri, string mime_type);
91		public void open_stream (string base_uri, string mime_type);
92		public void append_data (string data, uint32 len);
93
94		public void close_stream ();
95		public unowned string get_link_message ();
96		public unowned string get_js_status ();
97		public unowned string get_title ();
98		public unowned string get_location ();
99
100		public void reload (MozEmbedReloadFlags flags);
101		public void set_chrome_mask (MozEmbedChromeFlags flags);
102		public MozEmbedChromeFlags get_chrome_mask ();
103
104		public static void push_startup ();
105		public static void pop_startup ();
106		public static void set_comp_path (string aPath);
107		public static void set_profile_path (string aDir, string aName);
108
109		public signal void js_status ();
110		public signal void location ();
111		public signal void link_message ();
112		public signal void title ();
113		public signal void progress (int cur, int max);
114		public signal void net_state (int flags, uint status);
115		public signal void net_start ();
116		public signal void net_stop ();
117		public signal void new_window (out MozEmbed retval, MozEmbedChromeFlags chromemask);
118		public signal void visibility (bool visibility);
119		public signal void destroy_browser ();
120		public signal bool open_uri (string uri);
121	}
122}
123
124