From 52a3c45956a21bf86c156abe73077b5f3786303a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Tue, 28 Feb 2012 14:45:41 +0100 Subject: parse elm_web.h, generate elm_web.rb --- lib/efl/elementary_all.rb | 2 +- lib/efl/elm/elm_web.rb | 22 ++++++ lib/efl/native/elm/elm_web.rb | 165 ++++++++++++++++++++++++++++++++++++++++++ tools/genruby.rb | 2 +- 4 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 lib/efl/elm/elm_web.rb create mode 100644 lib/efl/native/elm/elm_web.rb diff --git a/lib/efl/elementary_all.rb b/lib/efl/elementary_all.rb index c62fbc1..0ffc4dd 100644 --- a/lib/efl/elementary_all.rb +++ b/lib/efl/elementary_all.rb @@ -84,7 +84,7 @@ require 'efl/elm/elm_thumb' require 'efl/elm/elm_toolbar' require 'efl/elm/elm_transit' require 'efl/elm/elm_video' -#require 'efl/elm/elm_web' +require 'efl/elm/elm_web' #require 'efl/elm/elm_widget' require 'efl/elm/elm_win' # diff --git a/lib/efl/elm/elm_web.rb b/lib/efl/elm/elm_web.rb new file mode 100644 index 0000000..a8084b7 --- /dev/null +++ b/lib/efl/elm/elm_web.rb @@ -0,0 +1,22 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'efl/elm/elm_object' +require 'efl/native/elm/elm_web' +# +module Efl + # + module Elm + # + class ElmWeb < ElmObject + # + include Helper + constructor :elm_web_add + search_prefixes 'elm_web_' + # + end + # + end +end +# +# EOF diff --git a/lib/efl/native/elm/elm_web.rb b/lib/efl/native/elm/elm_web.rb new file mode 100644 index 0000000..1a4a55d --- /dev/null +++ b/lib/efl/native/elm/elm_web.rb @@ -0,0 +1,165 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'efl/native' +require 'efl/native/elementary' +# +module Efl + # + module ElmWeb + # + FCT_PREFIX = 'elm_web_' unless const_defined? :FCT_PREFIX + # + def self.method_missing meth, *args, &block + sym = Efl::MethodResolver.resolve self, meth, FCT_PREFIX + self.send sym, *args, &block + end + # + end + # + module Native + # + ffi_lib 'elementary-ver-pre-svn-09.so.0' + # + # ENUMS + # typedef enum {...} Elm_Web_Menu_Item_Type; + enum :elm_web_menu_item_type, [ :elm_web_menu_separator, :elm_web_menu_group, :elm_web_menu_option ] + # typedef enum {...} Elm_Web_Zoom_Mode; + enum :elm_web_zoom_mode, [ :elm_web_zoom_mode_manual, 0, :elm_web_zoom_mode_auto_fit, 1, :elm_web_zoom_mode_auto_fill, 2, + :elm_web_zoom_mode_last, 3 ] + # + # TYPEDEFS + # typedef struct _Elm_Web_Frame_Load_Error Elm_Web_Frame_Load_Error; + typedef :pointer, :elm_web_frame_load_error + # typedef struct _Elm_Web_Menu_Item Elm_Web_Menu_Item; + typedef :pointer, :elm_web_menu_item + # typedef struct _Elm_Web_Menu Elm_Web_Menu; + typedef :pointer, :elm_web_menu + # typedef struct _Elm_Web_Download Elm_Web_Download; + typedef :pointer, :elm_web_download + # typedef struct _Elm_Web_Window_Features Elm_Web_Window_Features; + typedef :pointer, :elm_web_window_features + # + # CALLBACKS + # typedef Evas_Object *(*Elm_Web_Window_Open) (void *data, Evas_Object *obj, Eina_Bool js, const Elm_Web_Window_Features *window_features); + callback :elm_web_window_open_cb, [ :pointer, :evas_object, :bool, :elm_web_window_features ], :evas_object + # typedef Evas_Object *(*Elm_Web_Dialog_Alert) (void *data, Evas_Object *obj, const char *message); + callback :elm_web_dialog_alert_cb, [ :pointer, :evas_object, :string ], :evas_object + # typedef Evas_Object *(*Elm_Web_Dialog_Confirm) (void *data, Evas_Object *obj, const char *message, Eina_Bool *ret); + callback :elm_web_dialog_confirm_cb, [ :pointer, :evas_object, :string, :pointer ], :evas_object + # typedef Evas_Object *(*Elm_Web_Dialog_Prompt) (void *data, Evas_Object *obj, const char *message, const char *def_value, char **value, Eina_Bool *ret); + callback :elm_web_dialog_prompt_cb, [ :pointer, :evas_object, :string, :string, :pointer, :pointer ], :evas_object + # typedef Evas_Object *(*Elm_Web_Dialog_File_Selector) (void *data, Evas_Object *obj, Eina_Bool allows_multiple, Eina_List *accept_types, Eina_List **selected, Eina_Bool *ret); + callback :elm_web_dialog_file_selector_cb, [ :pointer, :evas_object, :bool, :eina_list, :eina_list, :pointer ], :evas_object + # typedef void (*Elm_Web_Console_Message) (void *data, Evas_Object *obj, const char *message, unsigned int line_number, const char *source_id); + callback :elm_web_console_message_cb, [ :pointer, :evas_object, :string, :uint, :string ], :void + # + # FUNCTIONS + fcts = [ + # EAPI Evas_Object *elm_web_add(Evas_Object *parent); + [ :elm_web_add, [ :evas_object ], :evas_object ], + # EAPI void elm_web_useragent_set(Evas_Object *obj, const char *user_agent); + [ :elm_web_useragent_set, [ :evas_object, :string ], :void ], + # EAPI const char* elm_web_useragent_get(const Evas_Object *obj); + [ :elm_web_useragent_get, [ :evas_object ], :pointer ], + # EAPI Evas_Object *elm_web_webkit_view_get(const Evas_Object *obj); + [ :elm_web_webkit_view_get, [ :evas_object ], :evas_object ], + # EAPI void elm_web_window_create_hook_set(Evas_Object *obj, Elm_Web_Window_Open func, void *data); + [ :elm_web_window_create_hook_set, [ :evas_object, :elm_web_window_open_cb, :pointer ], :void ], + # EAPI void elm_web_dialog_alert_hook_set(Evas_Object *obj, Elm_Web_Dialog_Alert func, void *data); + [ :elm_web_dialog_alert_hook_set, [ :evas_object, :elm_web_dialog_alert_cb, :pointer ], :void ], + # EAPI void elm_web_dialog_confirm_hook_set(Evas_Object *obj, Elm_Web_Dialog_Confirm func, void *data); + [ :elm_web_dialog_confirm_hook_set, [ :evas_object, :elm_web_dialog_confirm_cb, :pointer ], :void ], + # EAPI void elm_web_dialog_prompt_hook_set(Evas_Object *obj, Elm_Web_Dialog_Prompt func, void *data); + [ :elm_web_dialog_prompt_hook_set, [ :evas_object, :elm_web_dialog_prompt_cb, :pointer ], :void ], + # EAPI void elm_web_dialog_file_selector_hook_set(Evas_Object *obj, Elm_Web_Dialog_File_Selector func, void *data); + [ :elm_web_dialog_file_selector_hook_set, [ :evas_object, :elm_web_dialog_file_selector_cb, :pointer ], :void ], + # EAPI void elm_web_console_message_hook_set(Evas_Object *obj, Elm_Web_Console_Message func, void *data); + [ :elm_web_console_message_hook_set, [ :evas_object, :elm_web_console_message_cb, :pointer ], :void ], + # EAPI Eina_Bool elm_web_tab_propagate_get(const Evas_Object *obj); + [ :elm_web_tab_propagate_get, [ :evas_object ], :bool ], + # EAPI void elm_web_tab_propagate_set(Evas_Object *obj, Eina_Bool propagate); + [ :elm_web_tab_propagate_set, [ :evas_object, :bool ], :void ], + # EAPI Eina_Bool elm_web_uri_set(Evas_Object *obj, const char *uri); + [ :elm_web_uri_set, [ :evas_object, :string ], :bool ], + # EAPI const char *elm_web_uri_get(const Evas_Object *obj); + [ :elm_web_uri_get, [ :evas_object ], :string ], + # EAPI const char *elm_web_title_get(const Evas_Object *obj); + [ :elm_web_title_get, [ :evas_object ], :string ], + # EAPI void elm_web_bg_color_set(Evas_Object *obj, int r, int g, int b, int a); + [ :elm_web_bg_color_set, [ :evas_object, :int, :int, :int, :int ], :void ], + # EAPI void elm_web_bg_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a); + [ :elm_web_bg_color_get, [ :evas_object, :pointer, :pointer, :pointer, :pointer ], :void ], + # EAPI char *elm_web_selection_get(const Evas_Object *obj); + [ :elm_web_selection_get, [ :evas_object ], :string ], + # EAPI void elm_web_popup_selected_set(Evas_Object *obj, int index); + [ :elm_web_popup_selected_set, [ :evas_object, :int ], :void ], + # EAPI Eina_Bool elm_web_popup_destroy(Evas_Object *obj); + [ :elm_web_popup_destroy, [ :evas_object ], :bool ], + # EAPI Eina_Bool elm_web_text_search(const Evas_Object *obj, const char *string, Eina_Bool case_sensitive, Eina_Bool forward, Eina_Bool wrap); + [ :elm_web_text_search, [ :evas_object, :string, :bool, :bool, :bool ], :bool ], + # EAPI unsigned int elm_web_text_matches_mark(Evas_Object *obj, const char *string, Eina_Bool case_sensitive, Eina_Bool highlight, unsigned int limit); + [ :elm_web_text_matches_mark, [ :evas_object, :string, :bool, :bool, :uint ], :uint ], + # EAPI Eina_Bool elm_web_text_matches_unmark_all(Evas_Object *obj); + [ :elm_web_text_matches_unmark_all, [ :evas_object ], :bool ], + # EAPI Eina_Bool elm_web_text_matches_highlight_set(Evas_Object *obj, Eina_Bool highlight); + [ :elm_web_text_matches_highlight_set, [ :evas_object, :bool ], :bool ], + # EAPI Eina_Bool elm_web_text_matches_highlight_get(const Evas_Object *obj); + [ :elm_web_text_matches_highlight_get, [ :evas_object ], :bool ], + # EAPI double elm_web_load_progress_get(const Evas_Object *obj); + [ :elm_web_load_progress_get, [ :evas_object ], :double ], + # EAPI Eina_Bool elm_web_stop(Evas_Object *obj); + [ :elm_web_stop, [ :evas_object ], :bool ], + # EAPI Eina_Bool elm_web_reload(Evas_Object *obj); + [ :elm_web_reload, [ :evas_object ], :bool ], + # EAPI Eina_Bool elm_web_reload_full(Evas_Object *obj); + [ :elm_web_reload_full, [ :evas_object ], :bool ], + # EAPI Eina_Bool elm_web_back(Evas_Object *obj); + [ :elm_web_back, [ :evas_object ], :bool ], + # EAPI Eina_Bool elm_web_forward(Evas_Object *obj); + [ :elm_web_forward, [ :evas_object ], :bool ], + # EAPI Eina_Bool elm_web_navigate(Evas_Object *obj, int steps); + [ :elm_web_navigate, [ :evas_object, :int ], :bool ], + # EAPI Eina_Bool elm_web_back_possible(Evas_Object *obj); + [ :elm_web_back_possible, [ :evas_object ], :bool ], + # EAPI Eina_Bool elm_web_forward_possible(Evas_Object *obj); + [ :elm_web_forward_possible, [ :evas_object ], :bool ], + # EAPI Eina_Bool elm_web_navigate_possible(Evas_Object *obj, int steps); + [ :elm_web_navigate_possible, [ :evas_object, :int ], :bool ], + # EAPI Eina_Bool elm_web_history_enable_get(const Evas_Object *obj); + [ :elm_web_history_enable_get, [ :evas_object ], :bool ], + # EAPI void elm_web_history_enable_set(Evas_Object *obj, Eina_Bool enable); + [ :elm_web_history_enable_set, [ :evas_object, :bool ], :void ], + # EAPI void elm_web_zoom_set(Evas_Object *obj, double zoom); + [ :elm_web_zoom_set, [ :evas_object, :double ], :void ], + # EAPI double elm_web_zoom_get(const Evas_Object *obj); + [ :elm_web_zoom_get, [ :evas_object ], :double ], + # EAPI void elm_web_zoom_mode_set(Evas_Object *obj, Elm_Web_Zoom_Mode mode); + [ :elm_web_zoom_mode_set, [ :evas_object, :elm_web_zoom_mode ], :void ], + # EAPI Elm_Web_Zoom_Mode elm_web_zoom_mode_get(const Evas_Object *obj); + [ :elm_web_zoom_mode_get, [ :evas_object ], :elm_web_zoom_mode ], + # EAPI void elm_web_region_show(Evas_Object *obj, int x, int y, int w, int h); + [ :elm_web_region_show, [ :evas_object, :int, :int, :int, :int ], :void ], + # EAPI void elm_web_region_bring_in(Evas_Object *obj, int x, int y, int w, int h); + [ :elm_web_region_bring_in, [ :evas_object, :int, :int, :int, :int ], :void ], + # EAPI void elm_web_inwin_mode_set(Evas_Object *obj, Eina_Bool value); + [ :elm_web_inwin_mode_set, [ :evas_object, :bool ], :void ], + # EAPI Eina_Bool elm_web_inwin_mode_get(const Evas_Object *obj); + [ :elm_web_inwin_mode_get, [ :evas_object ], :bool ], + # EAPI void elm_web_window_features_ref(Elm_Web_Window_Features *wf); + [ :elm_web_window_features_ref, [ :elm_web_window_features ], :void ], + # EAPI void elm_web_window_features_unref(Elm_Web_Window_Features *wf); + [ :elm_web_window_features_unref, [ :elm_web_window_features ], :void ], + # EAPI void elm_web_window_features_bool_property_get(const Elm_Web_Window_Features *wf, Eina_Bool *toolbar_visible, Eina_Bool *statusbar_visible, Eina_Bool *scrollbars_visible, Eina_Bool *menubar_visible, Eina_Bool *locationbar_visble, Eina_Bool *fullscreen); + [ :elm_web_window_features_bool_property_get, [ :elm_web_window_features, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer ], :void + ], + # EAPI void elm_web_window_features_int_property_get(const Elm_Web_Window_Features *wf, int *x, int *y, int *w, int *h); + [ :elm_web_window_features_int_property_get, [ :elm_web_window_features, :pointer, :pointer, :pointer, :pointer ], :void ], + ] + # + attach_fcts fcts + # + end +end +# +# EOF diff --git a/tools/genruby.rb b/tools/genruby.rb index edf95c0..27cff71 100755 --- a/tools/genruby.rb +++ b/tools/genruby.rb @@ -440,7 +440,7 @@ libs << elm_h('elm_thumb.h', 'ElmThumb') libs << elm_h('elm_toolbar.h', 'ElmToolbar', ["#{NATIVE}/elementary","#{NATIVE}/elm/elm_icon"]) libs << elm_h('elm_transit.h', 'ElmTransit') libs << elm_h('elm_video.h', 'ElmVideo') -#libs << elm_h('elm_web.h', 'ElmX') +libs << elm_h('elm_web.h', 'ElmWeb') #libs << elm_h('elm_widget.h', 'ElmX') libs << elm_h('elm_win.h', 'ElmWin') -- cgit v1.1-2-g2b99