2
* The contents of this file are subject to the Mozilla Public
3
* License Version 1.1 (the "License"); you may not use this file
4
* except in compliance with the License. You may obtain a copy of
5
* the License at http://www.mozilla.org/MPL/
7
* Software distributed under the License is distributed on an "AS
8
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
9
* implied. See the License for the specific language governing
10
* rights and limitations under the License.
12
* The Original Code is mozilla.org code.
14
* The Initial Developer of the Original Code is Christopher Blizzard.
15
* Portions created by Christopher Blizzard are Copyright (C)
16
* Christopher Blizzard. All Rights Reserved.
19
* Christopher Blizzard <blizzard@mozilla.org>
20
* Ramiro Estrugo <ramiro@eazel.com>
28
#endif /* __cplusplus */
33
#define GTK_TYPE_MOZ_EMBED (gtk_moz_embed_get_type())
34
#define GTK_MOZ_EMBED(obj) GTK_CHECK_CAST((obj), GTK_TYPE_MOZ_EMBED, GtkMozEmbed)
35
#define GTK_MOZ_EMBED_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), GTK_TYPE_MOZ_EMBED, GtkMozEmbedClass)
36
#define GTK_IS_MOZ_EMBED(obj) GTK_CHECK_TYPE((obj), GTK_TYPE_MOZ_EMBED)
37
#define GTK_IS_MOZ_EMBED_CLASS(klass) GTK_CHECK_CLASS_TYPE((klass), GTK_TYPE_MOZ_EMBED)
39
typedef struct _GtkMozEmbed GtkMozEmbed;
40
typedef struct _GtkMozEmbedClass GtkMozEmbedClass;
48
struct _GtkMozEmbedClass
50
GtkBinClass parent_class;
52
void (* link_message) (GtkMozEmbed *embed);
53
void (* js_status) (GtkMozEmbed *embed);
54
void (* location) (GtkMozEmbed *embed);
55
void (* title) (GtkMozEmbed *embed);
56
void (* progress) (GtkMozEmbed *embed, gint curprogress,
58
void (* progress_all) (GtkMozEmbed *embed, const char *aURI,
59
gint curprogress, gint maxprogress);
60
void (* net_state) (GtkMozEmbed *embed, gint state, guint status);
61
void (* net_state_all) (GtkMozEmbed *embed, const char *aURI,
62
gint state, guint status);
63
void (* net_start) (GtkMozEmbed *embed);
64
void (* net_stop) (GtkMozEmbed *embed);
65
void (* new_window) (GtkMozEmbed *embed, GtkMozEmbed **newEmbed,
67
void (* visibility) (GtkMozEmbed *embed, gboolean visibility);
68
void (* destroy_brsr) (GtkMozEmbed *embed);
69
gint (* open_uri) (GtkMozEmbed *embed, const char *aURI);
70
void (* size_to) (GtkMozEmbed *embed, gint width, gint height);
71
gint (* dom_key_down) (GtkMozEmbed *embed, gpointer dom_event);
72
gint (* dom_key_press) (GtkMozEmbed *embed, gpointer dom_event);
73
gint (* dom_key_up) (GtkMozEmbed *embed, gpointer dom_event);
74
gint (* dom_mouse_down) (GtkMozEmbed *embed, gpointer dom_event);
75
gint (* dom_mouse_up) (GtkMozEmbed *embed, gpointer dom_event);
76
gint (* dom_mouse_click) (GtkMozEmbed *embed, gpointer dom_event);
77
gint (* dom_mouse_dbl_click) (GtkMozEmbed *embed, gpointer dom_event);
78
gint (* dom_mouse_over) (GtkMozEmbed *embed, gpointer dom_event);
79
gint (* dom_mouse_out) (GtkMozEmbed *embed, gpointer dom_event);
80
void (* security_change) (GtkMozEmbed *embed, gpointer request,
82
void (* status_change) (GtkMozEmbed *embed, gpointer request,
83
gint status, gpointer message);
86
GtkType gtk_moz_embed_get_type (void);
87
GtkWidget *gtk_moz_embed_new (void);
88
void gtk_moz_embed_push_startup (void);
89
void gtk_moz_embed_pop_startup (void);
90
void gtk_moz_embed_set_comp_path (char *aPath);
91
void gtk_moz_embed_set_profile_path (char *aDir, char *aName);
92
void gtk_moz_embed_load_url (GtkMozEmbed *embed,
94
void gtk_moz_embed_stop_load (GtkMozEmbed *embed);
95
gboolean gtk_moz_embed_can_go_back (GtkMozEmbed *embed);
96
gboolean gtk_moz_embed_can_go_forward (GtkMozEmbed *embed);
97
void gtk_moz_embed_go_back (GtkMozEmbed *embed);
98
void gtk_moz_embed_go_forward (GtkMozEmbed *embed);
99
void gtk_moz_embed_render_data (GtkMozEmbed *embed,
102
const char *base_uri,
103
const char *mime_type);
104
void gtk_moz_embed_open_stream (GtkMozEmbed *embed,
105
const char *base_uri,
106
const char *mime_type);
107
void gtk_moz_embed_append_data (GtkMozEmbed *embed,
108
const char *data, guint32 len);
109
void gtk_moz_embed_close_stream (GtkMozEmbed *embed);
110
char *gtk_moz_embed_get_link_message (GtkMozEmbed *embed);
111
char *gtk_moz_embed_get_js_status (GtkMozEmbed *embed);
112
char *gtk_moz_embed_get_title (GtkMozEmbed *embed);
113
char *gtk_moz_embed_get_location (GtkMozEmbed *embed);
114
void gtk_moz_embed_reload (GtkMozEmbed *embed, gint32 flags);
115
void gtk_moz_embed_set_chrome_mask (GtkMozEmbed *embed,
117
guint32 gtk_moz_embed_get_chrome_mask (GtkMozEmbed *embed);
120
#define GTK_TYPE_MOZ_EMBED_PROGRESS_FLAGS \
121
(gtk_moz_embed_progress_flags_get_type())
122
#define GTK_TYPE_MOZ_EMBED_STATUS_ENUMS \
123
(gtk_moz_embed_status_enums_get_type())
124
#define GTK_TYPE_MOZ_EMBED_RELOAD_FLAGS \
125
(gtk_moz_embed_reload_flags_get_type())
126
#define GTK_TYPE_MOZ_EMBED_CHROME_FLAGS \
127
(gtk_moz_embed_chrome_flags_get_type())
129
GtkType gtk_moz_embed_progress_flags_get_type (void);
130
GtkType gtk_moz_embed_status_enums_get_type (void);
131
GtkType gtk_moz_embed_reload_flags_get_type (void);
132
GtkType gtk_moz_embed_chrome_flags_get_type (void);
134
/* These are straight out of nsIWebProgressListener.h */
138
GTK_MOZ_EMBED_FLAG_START = 1,
139
GTK_MOZ_EMBED_FLAG_REDIRECTING = 2,
140
GTK_MOZ_EMBED_FLAG_TRANSFERRING = 4,
141
GTK_MOZ_EMBED_FLAG_NEGOTIATING = 8,
142
GTK_MOZ_EMBED_FLAG_STOP = 16,
144
GTK_MOZ_EMBED_FLAG_IS_REQUEST = 65536,
145
GTK_MOZ_EMBED_FLAG_IS_DOCUMENT = 131072,
146
GTK_MOZ_EMBED_FLAG_IS_NETWORK = 262144,
147
GTK_MOZ_EMBED_FLAG_IS_WINDOW = 524288
148
} GtkMozEmbedProgressFlags;
150
/* These are from various networking headers */
154
/* NS_ERROR_UNKNOWN_HOST */
155
GTK_MOZ_EMBED_STATUS_FAILED_DNS = 2152398878U,
156
/* NS_ERROR_CONNECTION_REFUSED */
157
GTK_MOZ_EMBED_STATUS_FAILED_CONNECT = 2152398861U,
158
/* NS_ERROR_NET_TIMEOUT */
159
GTK_MOZ_EMBED_STATUS_FAILED_TIMEOUT = 2152398862U,
160
/* NS_BINDING_ABORTED */
161
GTK_MOZ_EMBED_STATUS_FAILED_USERCANCELED = 2152398850U
162
} GtkMozEmbedStatusFlags;
164
/* These used to be straight out of nsIWebNavigation.h until the API
165
changed. Now there's a mapping table that maps these values to the
170
GTK_MOZ_EMBED_FLAG_RELOADNORMAL = 0,
171
GTK_MOZ_EMBED_FLAG_RELOADBYPASSCACHE = 1,
172
GTK_MOZ_EMBED_FLAG_RELOADBYPASSPROXY = 2,
173
GTK_MOZ_EMBED_FLAG_RELOADBYPASSPROXYANDCACHE = 3,
174
GTK_MOZ_EMBED_FLAG_RELOADCHARSETCHANGE = 4
175
} GtkMozEmbedReloadFlags;
177
/* These are straight out of nsIWebBrowserChrome.h */
181
GTK_MOZ_EMBED_FLAG_DEFAULTCHROME = 1U,
182
GTK_MOZ_EMBED_FLAG_WINDOWBORDERSON = 2U,
183
GTK_MOZ_EMBED_FLAG_WINDOWCLOSEON = 4U,
184
GTK_MOZ_EMBED_FLAG_WINDOWRESIZEON = 8U,
185
GTK_MOZ_EMBED_FLAG_MENUBARON = 16U,
186
GTK_MOZ_EMBED_FLAG_TOOLBARON = 32U,
187
GTK_MOZ_EMBED_FLAG_LOCATIONBARON = 64U,
188
GTK_MOZ_EMBED_FLAG_STATUSBARON = 128U,
189
GTK_MOZ_EMBED_FLAG_PERSONALTOOLBARON = 256U,
190
GTK_MOZ_EMBED_FLAG_SCROLLBARSON = 512U,
191
GTK_MOZ_EMBED_FLAG_TITLEBARON = 1024U,
192
GTK_MOZ_EMBED_FLAG_EXTRACHROMEON = 2048U,
193
GTK_MOZ_EMBED_FLAG_ALLCHROME = 4094U,
194
GTK_MOZ_EMBED_FLAG_WINDOWRAISED = 33554432U,
195
GTK_MOZ_EMBED_FLAG_WINDOWLOWERED = 67108864U,
196
GTK_MOZ_EMBED_FLAG_CENTERSCREEN = 134217728U,
197
GTK_MOZ_EMBED_FLAG_DEPENDENT = 268435456U,
198
GTK_MOZ_EMBED_FLAG_MODAL = 536870912U,
199
GTK_MOZ_EMBED_FLAG_OPENASDIALOG = 1073741824U,
200
GTK_MOZ_EMBED_FLAG_OPENASCHROME = 2147483648U
201
} GtkMozEmbedChromeFlags;
203
/* this is a singleton object that you can hook up to to get signals
204
that are not handed out on a per widget basis. */
206
typedef struct _GtkMozEmbedSingle GtkMozEmbedSingle;
207
typedef struct _GtkMozEmbedSingleClass GtkMozEmbedSingleClass;
209
struct _GtkMozEmbedSingle
215
struct _GtkMozEmbedSingleClass
217
GtkObjectClass parent_class;
219
void (* new_window_orphan) (GtkMozEmbedSingle *embed,
220
GtkMozEmbed **newEmbed,
225
gtk_moz_embed_single_get(void);
229
#endif /* __cplusplus */
231
#endif /* gtkmozembed_h */