diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2012-02-27 15:25:27 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2012-02-27 15:25:27 +0100 |
commit | 7d085da91d5c2c7da74f9eaca50cca9faa4e33ef (patch) | |
tree | 433d03e5f3767c3f4c5e3ce680a0e0091b6c2967 | |
parent | 979cdad00dc4617cf1614f4d4bbdc07a1e7bc1d1 (diff) | |
download | ffi-efl-7d085da91d5c2c7da74f9eaca50cca9faa4e33ef.zip ffi-efl-7d085da91d5c2c7da74f9eaca50cca9faa4e33ef.tar.gz |
parse elm_menu.h, generate elm_menu.rb
-rw-r--r-- | lib/efl/elm/elm_menu.rb | 55 | ||||
-rw-r--r-- | lib/efl/native/elm/elm_menu.rb | 77 | ||||
-rwxr-xr-x | tools/extract-api.sh | 1 | ||||
-rwxr-xr-x | tools/genruby.rb | 5 |
4 files changed, 138 insertions, 0 deletions
diff --git a/lib/efl/elm/elm_menu.rb b/lib/efl/elm/elm_menu.rb new file mode 100644 index 0000000..f285011 --- /dev/null +++ b/lib/efl/elm/elm_menu.rb @@ -0,0 +1,55 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'efl/elm/elm_object' +require 'efl/elm/elm_object_item' +require 'efl/native/elm/elm_menu' +# +module Efl + # + module Elm + # + class ElmMenu < ElmObject + # + include Helper + constructor :elm_menu_add + search_prefixes 'elm_menu_' + # + def item_add parent, icon=nil, label=nil, cb=nil, data=nil + ElmObjectItem.new Native::elm_menu_item_add @ptr, parent, icon, label, cb, data + end + # + def item_add_object parent, subobj, cb=nil, data=nil + ElmObjectItem.new Native::elm_menu_item_add_object @ptr, parent, subobj, cb, data + end + # + def item_separator_add parent + ElmObjectItem.new Native::elm_menu_item_separator_add @ptr, parent + end + # + def selected_item_get + ElmObjectItem.new Native::elm_menu_selected_item_get @ptr + end + # + def last_item_get + ElmObjectItem.new Native::elm_menu_last_item_get @ptr + end + # + def first_item_get + ElmObjectItem.new Native::elm_menu_first_item_get @ptr + end + # + def item_next_get it + ElmObjectItem.new Native::elm_menu_item_next_get it + end + # + def item_prev_get it + ElmObjectItem.new Native::elm_menu_item_prev_get it + end + # + end + # + end +end +# +# EOF diff --git a/lib/efl/native/elm/elm_menu.rb b/lib/efl/native/elm/elm_menu.rb new file mode 100644 index 0000000..bb981a6 --- /dev/null +++ b/lib/efl/native/elm/elm_menu.rb @@ -0,0 +1,77 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'efl/native' +require 'efl/native/elementary' +# +module Efl + # + module ElmMenu + # + FCT_PREFIX = 'elm_menu_' 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' + # + # FUNCTIONS + fcts = [ + # EAPI Evas_Object *elm_menu_add(Evas_Object *parent); + [ :elm_menu_add, [ :evas_object ], :evas_object ], + # EAPI void elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent); + [ :elm_menu_parent_set, [ :evas_object, :evas_object ], :void ], + # EAPI Evas_Object *elm_menu_parent_get(const Evas_Object *obj); + [ :elm_menu_parent_get, [ :evas_object ], :evas_object ], + # EAPI void elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y); + [ :elm_menu_move, [ :evas_object, :int, :int ], :void ], + # EAPI void elm_menu_close(Evas_Object *obj); + [ :elm_menu_close, [ :evas_object ], :void ], + # EAPI const Eina_List *elm_menu_items_get(const Evas_Object *obj); + [ :elm_menu_items_get, [ :evas_object ], :eina_list ], + # EAPI Evas_Object *elm_menu_item_object_get(const Elm_Object_Item *it); + [ :elm_menu_item_object_get, [ :elm_object_item ], :evas_object ], + # EAPI Elm_Object_Item *elm_menu_item_add(Evas_Object *obj, Elm_Object_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data); + [ :elm_menu_item_add, [ :evas_object, :elm_object_item, :string, :string, :evas_smart_cb, :pointer ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_menu_item_add_object(Evas_Object *obj, Elm_Object_Item *parent, Evas_Object *subobj, Evas_Smart_Cb func, const void *data); + [ :elm_menu_item_add_object, [ :evas_object, :elm_object_item, :evas_object, :evas_smart_cb, :pointer ], :elm_object_item ], + # EAPI void elm_menu_item_object_icon_name_set(Elm_Object_Item *it, const char *icon); + [ :elm_menu_item_object_icon_name_set, [ :elm_object_item, :string ], :void ], + # EAPI const char *elm_menu_item_object_icon_name_get(const Elm_Object_Item *it); + [ :elm_menu_item_object_icon_name_get, [ :elm_object_item ], :string ], + # EAPI void elm_menu_item_selected_set(Elm_Object_Item *it, Eina_Bool selected); + [ :elm_menu_item_selected_set, [ :elm_object_item, :bool ], :void ], + # EAPI Eina_Bool elm_menu_item_selected_get(const Elm_Object_Item *it); + [ :elm_menu_item_selected_get, [ :elm_object_item ], :bool ], + # EAPI Elm_Object_Item *elm_menu_item_separator_add(Evas_Object *obj, Elm_Object_Item *parent); + [ :elm_menu_item_separator_add, [ :evas_object, :elm_object_item ], :elm_object_item ], + # EAPI Eina_Bool elm_menu_item_is_separator(Elm_Object_Item *it); + [ :elm_menu_item_is_separator, [ :elm_object_item ], :bool ], + # EAPI const Eina_List *elm_menu_item_subitems_get(const Elm_Object_Item *it); + [ :elm_menu_item_subitems_get, [ :elm_object_item ], :eina_list ], + # EAPI unsigned int elm_menu_item_index_get(const Elm_Object_Item *it); + [ :elm_menu_item_index_get, [ :elm_object_item ], :uint ], + # EAPI Elm_Object_Item *elm_menu_selected_item_get(const Evas_Object *obj); + [ :elm_menu_selected_item_get, [ :evas_object ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_menu_last_item_get(const Evas_Object *obj); + [ :elm_menu_last_item_get, [ :evas_object ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_menu_first_item_get(const Evas_Object *obj); + [ :elm_menu_first_item_get, [ :evas_object ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_menu_item_next_get(const Elm_Object_Item *it); + [ :elm_menu_item_next_get, [ :elm_object_item ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_menu_item_prev_get(const Elm_Object_Item *it); + [ :elm_menu_item_prev_get, [ :elm_object_item ], :elm_object_item ], + ] + # + attach_fcts fcts + # + end +end +# +# EOF diff --git a/tools/extract-api.sh b/tools/extract-api.sh index e830d2a..501fc6e 100755 --- a/tools/extract-api.sh +++ b/tools/extract-api.sh @@ -60,6 +60,7 @@ for header in \ "${INCLUDE}/elementary-0/elm_panel.h" \ "${INCLUDE}/elementary-0/elm_image.h" \ "${INCLUDE}/elementary-0/elm_grid.h" \ + "${INCLUDE}/elementary-0/elm_menu.h" \ ; do # if [ ! -e "$header" ]; then diff --git a/tools/genruby.rb b/tools/genruby.rb index 2d80a8d..a58c294 100755 --- a/tools/genruby.rb +++ b/tools/genruby.rb @@ -420,6 +420,11 @@ libs << { :modname=>'ElmGrid', :prefix=>'elm_grid', :outfile=>'elm/elm_grid.rb', :requires=>["#{NATIVE}/elementary"], :constants=>[] } +libs << { + :lib=>ELM_LIB,:header=>'elm_menu.h', + :modname=>'ElmMenu', :prefix=>'elm_menu', :outfile=>'elm/elm_menu.rb', + :requires=>["#{NATIVE}/elementary"], :constants=>[] +} # Dir.mkdir lib_path unless (File.exists? lib_path) # |