diff options
| author | Kristian Monsen <kristianm@google.com> | 2010-06-28 16:42:48 +0100 |
|---|---|---|
| committer | Kristian Monsen <kristianm@google.com> | 2010-07-02 10:29:56 +0100 |
| commit | 06ea8e899e48f1f2f396b70e63fae369f2f23232 (patch) | |
| tree | 20c1428cd05c76f32394ab354ea35ed99acd86d8 /WebKit/efl | |
| parent | 72aad67af14193199e29cdd5c4ddc095a8b9a8a8 (diff) | |
| download | external_webkit-06ea8e899e48f1f2f396b70e63fae369f2f23232.zip external_webkit-06ea8e899e48f1f2f396b70e63fae369f2f23232.tar.gz external_webkit-06ea8e899e48f1f2f396b70e63fae369f2f23232.tar.bz2 | |
Merge WebKit at r61871: Initial merge by git.
Change-Id: I6cff43abca9cc4782e088a469ad4f03f166a65d5
Diffstat (limited to 'WebKit/efl')
| -rw-r--r-- | WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp | 45 | ||||
| -rw-r--r-- | WebKit/efl/WebCoreSupport/ChromeClientEfl.h | 3 | ||||
| -rw-r--r-- | WebKit/efl/WebCoreSupport/EditorClientEfl.h | 3 | ||||
| -rw-r--r-- | WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp | 28 | ||||
| -rw-r--r-- | WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp | 2 | ||||
| -rw-r--r-- | WebKit/efl/ewebkit.pc.in | 1 | ||||
| -rw-r--r-- | WebKit/efl/ewk/EWebKit.h | 1 | ||||
| -rw-r--r-- | WebKit/efl/ewk/ewk_private.h | 5 | ||||
| -rw-r--r-- | WebKit/efl/ewk/ewk_view.cpp | 26 | ||||
| -rw-r--r-- | WebKit/efl/ewk/ewk_view.h | 6 | ||||
| -rw-r--r-- | WebKit/efl/ewk/ewk_window_features.cpp | 156 | ||||
| -rw-r--r-- | WebKit/efl/ewk/ewk_window_features.h | 43 |
12 files changed, 299 insertions, 20 deletions
diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp index c51befb..8ec65b9 100644 --- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp @@ -38,6 +38,7 @@ #include "DatabaseTracker.h" #endif #include "EWebKit.h" +#include "FileChooser.h" #include "FloatRect.h" #include "FrameLoader.h" #include "FrameLoaderClientEfl.h" @@ -50,6 +51,8 @@ #include "ewk_private.h" #include <wtf/text/CString.h> +#include <Evas.h> + using namespace WebCore; static inline Evas_Object* kit(Frame* frame) @@ -115,10 +118,16 @@ void ChromeClientEfl::unfocus() evas_object_focus_set(m_view, EINA_FALSE); } -Page* ChromeClientEfl::createWindow(Frame*, const FrameLoadRequest& request, const WindowFeatures& features) +Page* ChromeClientEfl::createWindow(Frame*, const FrameLoadRequest& frameLoadRequest, const WindowFeatures& features) { - notImplemented(); - return 0; + Evas_Object* newView = ewk_view_window_create(m_view, EINA_TRUE, &features); + if (!newView) + return 0; + + if (!frameLoadRequest.isEmpty()) + ewk_view_uri_set(newView, frameLoadRequest.resourceRequest().url().string().utf8().data()); + + return ewk_view_core_page_get(newView); } void ChromeClientEfl::show() @@ -376,7 +385,35 @@ void ChromeClientEfl::exceededDatabaseQuota(Frame* frame, const String& database void ChromeClientEfl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> prpFileChooser) { - notImplemented(); + RefPtr<FileChooser> chooser = prpFileChooser; + bool confirm; + Eina_List* selectedFilenames = 0; + Eina_List* suggestedFilenames = 0; + void* filename; + Vector<String> filenames; + + for (unsigned i = 0; i < chooser->filenames().size(); i++) { + CString str = chooser->filenames()[i].utf8(); + filename = strdup(str.data()); + suggestedFilenames = eina_list_append(suggestedFilenames, filename); + } + + confirm = ewk_view_run_open_panel(m_view, kit(frame), chooser->allowsMultipleFiles(), suggestedFilenames, &selectedFilenames); + EINA_LIST_FREE(suggestedFilenames, filename) + free(filename); + + if (!confirm) + return; + + EINA_LIST_FREE(selectedFilenames, filename) { + filenames.append((char *)filename); + free(filename); + } + + if (chooser->allowsMultipleFiles()) + chooser->chooseFiles(filenames); + else + chooser->chooseFile(filenames[0]); } void ChromeClientEfl::formStateDidChange(const Node*) diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h index 399ef7f..fccf54f 100644 --- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h +++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h @@ -26,7 +26,8 @@ #include "ChromeClient.h" #include "KURL.h" #include "PopupMenu.h" -#include <Evas.h> + +typedef struct _Evas_Object Evas_Object; namespace WebCore { diff --git a/WebKit/efl/WebCoreSupport/EditorClientEfl.h b/WebKit/efl/WebCoreSupport/EditorClientEfl.h index ead1169..a53d624 100644 --- a/WebKit/efl/WebCoreSupport/EditorClientEfl.h +++ b/WebKit/efl/WebCoreSupport/EditorClientEfl.h @@ -34,10 +34,11 @@ #define EditorClientEfl_h #include "EditorClient.h" -#include <Evas.h> #include <wtf/Forward.h> +typedef struct _Evas_Object Evas_Object; + namespace WebCore { class Page; diff --git a/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp b/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp index 2358fab..438d6a0 100644 --- a/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp @@ -707,8 +707,11 @@ void FrameLoaderClientEfl::dispatchDidFinishLoading(DocumentLoader*, unsigned lo notImplemented(); } -void FrameLoaderClientEfl::dispatchDidFailLoading(DocumentLoader* loader, unsigned long identifier, const ResourceError&) +void FrameLoaderClientEfl::dispatchDidFailLoading(DocumentLoader* loader, unsigned long identifier, const ResourceError& err) { + if (!shouldFallBack(err)) + return; + if (m_firstData) { FrameLoader* fl = loader->frameLoader(); fl->writer()->setEncoding(m_response.textEncodingName(), false); @@ -735,6 +738,9 @@ void FrameLoaderClientEfl::dispatchDidFailProvisionalLoad(const ResourceError& e void FrameLoaderClientEfl::dispatchDidFailLoad(const ResourceError& err) { + if (!shouldFallBack(err)) + return; + m_loadError = err; ewk_frame_load_error(m_frame, m_loadError.domain().utf8().data(), @@ -782,7 +788,7 @@ ResourceError FrameLoaderClientEfl::cannotShowURLError(const ResourceRequest& re ResourceError FrameLoaderClientEfl::interruptForPolicyChangeError(const ResourceRequest& request) { return ResourceError("Error", WebKitErrorFrameLoadInterruptedByPolicyChange, - request.url().string(), "Frame load interruped by policy change"); + request.url().string(), "Frame load interrupted by policy change"); } ResourceError FrameLoaderClientEfl::cannotShowMIMETypeError(const ResourceResponse& response) @@ -803,10 +809,9 @@ ResourceError FrameLoaderClientEfl::pluginWillHandleLoadError(const ResourceResp return ResourceError("Error", 0, "", ""); } -bool FrameLoaderClientEfl::shouldFallBack(const ResourceError&) +bool FrameLoaderClientEfl::shouldFallBack(const ResourceError& error) { - notImplemented(); - return false; + return !(error.isCancellation() || (error.errorCode() == WebKitErrorFrameLoadInterruptedByPolicyChange)); } bool FrameLoaderClientEfl::canCachePage() const @@ -816,8 +821,17 @@ bool FrameLoaderClientEfl::canCachePage() const Frame* FrameLoaderClientEfl::dispatchCreatePage() { - notImplemented(); - return 0; + if (!m_view) + return 0; + + Evas_Object* newView = ewk_view_window_create(m_view, EINA_FALSE, 0); + Evas_Object* mainFrame; + if (!newView) + mainFrame = m_frame; + else + mainFrame = ewk_view_frame_main_get(newView); + + return ewk_frame_core_get(mainFrame); } void FrameLoaderClientEfl::dispatchUnableToImplementPolicy(const ResourceError&) diff --git a/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp b/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp index 2fa860a..6bfd6ad 100644 --- a/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp @@ -60,7 +60,7 @@ void InspectorClientEfl::storeSetting(const String&, const String&) bool InspectorClientEfl::sendMessageToFrontend(const String&) { - notImpelemented(); + notImplemented(); return false; } diff --git a/WebKit/efl/ewebkit.pc.in b/WebKit/efl/ewebkit.pc.in index f58e5bf..d618e30 100644 --- a/WebKit/efl/ewebkit.pc.in +++ b/WebKit/efl/ewebkit.pc.in @@ -8,4 +8,5 @@ Description: Web content engine for EFL applications Version: @PROJECT_VERSION@ Requires: cairo evas ecore Libs: -L${libdir} -lewebkit @EXTRA_EWEBKIT_LINK@ +Libs.private: @LIBS_PRIVATE@ Cflags: -I${includedir}/EWebKit diff --git a/WebKit/efl/ewk/EWebKit.h b/WebKit/efl/ewk/EWebKit.h index a61cc9d..e08c4a5 100644 --- a/WebKit/efl/ewk/EWebKit.h +++ b/WebKit/efl/ewk/EWebKit.h @@ -29,6 +29,7 @@ #include "ewk_main.h" #include "ewk_settings.h" #include "ewk_view.h" +#include "ewk_window_features.h" #include <Evas.h> diff --git a/WebKit/efl/ewk/ewk_private.h b/WebKit/efl/ewk/ewk_private.h index 5f66fd8..facd6aa 100644 --- a/WebKit/efl/ewk/ewk_private.h +++ b/WebKit/efl/ewk/ewk_private.h @@ -56,6 +56,7 @@ void ewk_view_frame_main_load_started(Evas_Object *o); void ewk_view_load_finished(Evas_Object *o, const Ewk_Frame_Load_Error *error); void ewk_view_load_error(Evas_Object *o, const Ewk_Frame_Load_Error *error); void ewk_view_load_progress_changed(Evas_Object *o); +Evas_Object *ewk_view_window_create(Evas_Object *o, Eina_Bool javascript, const WebCore::WindowFeatures* coreFeatures); void ewk_view_mouse_link_hover_in(Evas_Object *o, void *data); void ewk_view_mouse_link_hover_out(Evas_Object *o); @@ -83,6 +84,8 @@ Eina_Bool ewk_view_run_javascript_prompt(Evas_Object *o, Evas_Object *fra Eina_Bool ewk_view_should_interrupt_javascript(Evas_Object *o); uint64_t ewk_view_exceeded_database_quota(Evas_Object *o, Evas_Object *frame, const char *databaseName, uint64_t current_size, uint64_t expected_size); +Eina_Bool ewk_view_run_open_panel(Evas_Object *o, Evas_Object *frame, Eina_Bool allows_multiple_files, const Eina_List *suggested_filenames, Eina_List **selected_filenames); + void ewk_view_repaint(Evas_Object *o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h); void ewk_view_scroll(Evas_Object *o, Evas_Coord dx, Evas_Coord dy, Evas_Coord sx, Evas_Coord sy, Evas_Coord sw, Evas_Coord sh, Evas_Coord cx, Evas_Coord cy, Evas_Coord cw, Evas_Coord ch, Eina_Bool main_frame); WebCore::Page *ewk_view_core_page_get(const Evas_Object *o); @@ -102,6 +105,8 @@ void ewk_context_menu_item_append(Ewk_Context_Menu *o, WebCore::Con Ewk_Context_Menu *ewk_context_menu_custom_get(Ewk_Context_Menu *o); void ewk_context_menu_show(Ewk_Context_Menu *o); +Ewk_Window_Features *ewk_window_features_new_from_core(const WebCore::WindowFeatures* core); + Evas_Object *ewk_frame_add(Evas *e); Eina_Bool ewk_frame_init(Evas_Object *o, Evas_Object *view, WebCore::Frame *frame); Evas_Object *ewk_frame_child_add(Evas_Object *o, WTF::PassRefPtr<WebCore::Frame> child, const WebCore::String& name, const WebCore::KURL& url, const WebCore::String& referrer); diff --git a/WebKit/efl/ewk/ewk_view.cpp b/WebKit/efl/ewk/ewk_view.cpp index d5920e5..8d66734 100644 --- a/WebKit/efl/ewk/ewk_view.cpp +++ b/WebKit/efl/ewk/ewk_view.cpp @@ -18,6 +18,7 @@ Boston, MA 02110-1301, USA. */ +#define __STDC_FORMAT_MACROS #include "config.h" #include "ewk_view.h" @@ -43,6 +44,7 @@ #include <Eina.h> #include <Evas.h> #include <eina_safety_checks.h> +#include <inttypes.h> #include <sys/time.h> #define ZOOM_MIN (0.05) @@ -706,6 +708,7 @@ static void _ewk_view_smart_del(Evas_Object* o) EWK_VIEW_SD_GET(o, sd); Ewk_View_Private_Data* priv = sd ? sd->_priv : 0; + ewk_view_stop(o); _parent_sc.del(o); _ewk_view_priv_del(priv); } @@ -3150,21 +3153,36 @@ void ewk_view_restore_state(Evas_Object* o, Evas_Object* frame) /** * @internal * Delegates to browser the creation of a new window. If it is not implemented, - * current view is returned, so navigation might continue in same window. + * current view is returned, so navigation might continue in same window. If + * browser supports the creation of new windows, a new Ewk_Window_Features is + * created and passed to browser. If it intends to keep the request for opening + * the window later it must increments the Ewk_Winwdow_Features ref count by + * calling ewk_window_features_ref(window_features). Otherwise this struct will + * be freed after returning to this function. * * @param o Current view. + * @param javascript @c EINA_TRUE if the new window is originated from javascript, + * @c EINA_FALSE otherwise + * @param window_features Features of the new window being created. If it's @c + * NULL, it will be created a window with default features. * * @return New view, in case smart class implements the creation of new windows; * else, current view @param o. + * + * @see ewk_window_features_ref(). */ -Evas_Object* ewk_view_window_create(Evas_Object* o) +Evas_Object* ewk_view_window_create(Evas_Object* o, Eina_Bool javascript, const WebCore::WindowFeatures* coreFeatures) { EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0); if (!sd->api->window_create) return o; - return sd->api->window_create(sd); + Ewk_Window_Features* window_features = ewk_window_features_new_from_core(coreFeatures); + Evas_Object* view = sd->api->window_create(sd, javascript, window_features); + ewk_window_features_unref(window_features); + + return view; } /** @@ -3449,7 +3467,7 @@ uint64_t ewk_view_exceeded_database_quota(Evas_Object* o, Evas_Object* frame, co if (!sd->api->exceeded_database_quota) return 0; - ERR("##### %lu %lu", current_size, expected_size); + INF("current_size=%"PRIu64" expected_size="PRIu64, current_size, expected_size); return sd->api->exceeded_database_quota(sd, frame, databaseName, current_size, expected_size); } diff --git a/WebKit/efl/ewk/ewk_view.h b/WebKit/efl/ewk/ewk_view.h index b029a68..a8fe3b8 100644 --- a/WebKit/efl/ewk/ewk_view.h +++ b/WebKit/efl/ewk/ewk_view.h @@ -21,9 +21,11 @@ #ifndef ewk_view_h #define ewk_view_h +#include "ewk_history.h" +#include "ewk_window_features.h" + #include <Evas.h> #include <cairo.h> -#include <ewk_history.h> #ifdef __cplusplus extern "C" { @@ -95,7 +97,7 @@ struct _Ewk_View_Smart_Class { Evas_Smart_Class sc; /**< all but 'data' is free to be changed. */ unsigned long version; - Evas_Object *(*window_create)(Ewk_View_Smart_Data *sd); /**< creates a new window, requested by webkit */ + Evas_Object *(*window_create)(Ewk_View_Smart_Data *sd, Eina_Bool javascript, const Ewk_Window_Features *window_features); /**< creates a new window, requested by webkit */ // hooks to allow different backing stores Evas_Object *(*backing_store_add)(Ewk_View_Smart_Data *sd); /**< must be defined */ Eina_Bool (*scrolls_process)(Ewk_View_Smart_Data *sd); /**< must be defined */ diff --git a/WebKit/efl/ewk/ewk_window_features.cpp b/WebKit/efl/ewk/ewk_window_features.cpp new file mode 100644 index 0000000..3855e89 --- /dev/null +++ b/WebKit/efl/ewk/ewk_window_features.cpp @@ -0,0 +1,156 @@ +/* + Copyright (C) 2010 ProFUSION embedded systems + Copyright (C) 2010 Samsung Electronics + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "config.h" +#include "ewk_window_features.h" + +#include "WindowFeatures.h" +#include "ewk_private.h" + +#include <Eina.h> + +struct _Ewk_Window_Features { + unsigned int __ref; + WebCore::WindowFeatures* core; +}; + +/** + * Decrease the ref count of an Ewk_Window_Features, possibly freeing it. + * + * When its ref count reaches 0, @param window_features is freed. + * + * @param window_features The window's features. + */ +EAPI void ewk_window_features_unref(Ewk_Window_Features* window_features) +{ + EINA_SAFETY_ON_NULL_RETURN(window_features); + EINA_SAFETY_ON_FALSE_RETURN(window_features->__ref > 0); + + if (--window_features->__ref) + return; + + delete window_features->core; + window_features->core = 0; + free(window_features); +} + +/** + * Increase the ref count of an Ewk_Window_Features + * + * @param window_features The window's features. + */ +EAPI void ewk_window_features_ref(Ewk_Window_Features* window_features) +{ + EINA_SAFETY_ON_NULL_RETURN(window_features); + window_features->__ref++; +} + +/** + * Get boolean properties + * + * @param window_features A window_features. + * @param toolbar_visible pointer to store if toolbar is visible. + * @param statusbar_visible pointer to store if statusbar is visible. + * @param scrollbars_visible pointer to store if scrollbars is visible. + * @param menubar_visible pointer to store if menubar is visible. + * @param locationbar_visible pointer to store if locationbar is visible. + * @param fullscreen pointer to store if fullscreen is enabled. + */ +EAPI void ewk_window_features_bool_property_get(Ewk_Window_Features* window_features, Eina_Bool* toolbar_visible, Eina_Bool* statusbar_visible, Eina_Bool* scrollbars_visible, Eina_Bool* menubar_visible, Eina_Bool* locationbar_visible, Eina_Bool* fullscreen) +{ + EINA_SAFETY_ON_NULL_RETURN(window_features); + EINA_SAFETY_ON_NULL_RETURN(window_features->core); + + if (toolbar_visible) + *toolbar_visible = window_features->core->toolBarVisible; + + if (statusbar_visible) + *statusbar_visible = window_features->core->statusBarVisible; + + if (scrollbars_visible) + *scrollbars_visible = window_features->core->scrollbarsVisible; + + if (menubar_visible) + *menubar_visible = window_features->core->menuBarVisible; + + if (locationbar_visible) + *locationbar_visible = window_features->core->locationBarVisible; + + if (fullscreen) + *fullscreen = window_features->core->fullscreen; +} + +/** + * Get int properties + * + * Properties are returned in the respective pointers. Passing NULL to any of + * these pointers will make that property to not be returned. Make sure to check + * if the value returned is less than 0 before using it, since in that case it + * means that property was not set in @param winwdow_features. + * + * @param window_features A window_features. + * @param x pointer to store x position or -1 if it's not set in window_features. + * @param y pointer to store y position or-1 if it's not set in window_features. + * @param w pointer to store width or-1 if it's not set in window_features. + * @param h pointer to store height or-1 if it's not set in window_features. + */ +EAPI void ewk_window_features_int_property_get(Ewk_Window_Features* window_features, int* x, int* y, int* w, int* h) +{ + EINA_SAFETY_ON_NULL_RETURN(window_features); + EINA_SAFETY_ON_NULL_RETURN(window_features->core); + + if (x) + *x = window_features->core->xSet ? static_cast<int>(window_features->core->x) : -1; + + if (y) + *y = window_features->core->ySet ? static_cast<int>(window_features->core->y) : -1; + + if (w) + *w = window_features->core->widthSet ? static_cast<int>(window_features->core->width) : -1; + + if (h) + *h = window_features->core->heightSet ? static_cast<int>(window_features->core->height) : -1; +} + +/* internal methods ****************************************************/ + +/** + * @internal + * Create a new Ewk_Window_Features from a WebCore::WindowFeatures if @param + * core is not NULL or a new one with default features. + * + * A new WebCore::WindowFeatures is allocated copying @param core features and + * it is embedded inside an Ewk_Window_Features whose ref count is initialized. + * + * @returns a new allocated Ewk_Window_Features + */ +Ewk_Window_Features* ewk_window_features_new_from_core(const WebCore::WindowFeatures* core) +{ + Ewk_Window_Features* window_features = static_cast<Ewk_Window_Features*>(malloc(sizeof(*window_features))); + + if (core) + window_features->core = new WebCore::WindowFeatures(*core); + else + window_features->core = new WebCore::WindowFeatures(); + + window_features->__ref = 1; + + return window_features; +} diff --git a/WebKit/efl/ewk/ewk_window_features.h b/WebKit/efl/ewk/ewk_window_features.h new file mode 100644 index 0000000..b579dc4 --- /dev/null +++ b/WebKit/efl/ewk/ewk_window_features.h @@ -0,0 +1,43 @@ +/* + Copyright (C) 2010 ProFUSION embedded systems + Copyright (C) 2010 Samsung Electronics + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef ewk_window_features_h +#define ewk_window_features_h + +#include "ewk_eapi.h" + +#include <Eina.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _Ewk_Window_Features Ewk_Window_Features; + +EAPI void ewk_window_features_unref(Ewk_Window_Features* window_features); +EAPI void ewk_window_features_ref(Ewk_Window_Features* window_features); + +EAPI void ewk_window_features_bool_property_get(Ewk_Window_Features* window_features, Eina_Bool* toolbar_visible, Eina_Bool* statusbar_visible, Eina_Bool* scrollbars_visible, Eina_Bool* menubar_visible, Eina_Bool* locationbar_visible, Eina_Bool* fullscreen); +EAPI void ewk_window_features_int_property_get(Ewk_Window_Features* window_features, int* x, int* y, int* w, int* h); + +#ifdef __cplusplus +} +#endif +#endif // ewk_window_features_h |
