diff options
-rw-r--r-- | lib/efl/elementary_all.rb | 2 | ||||
-rw-r--r-- | lib/efl/elm/elm_gengrid.rb | 79 | ||||
-rw-r--r-- | lib/efl/native/elm/elm_gengrid.rb | 189 | ||||
-rwxr-xr-x | tools/genruby.rb | 2 |
4 files changed, 270 insertions, 2 deletions
diff --git a/lib/efl/elementary_all.rb b/lib/efl/elementary_all.rb index b321ff9..873160e 100644 --- a/lib/efl/elementary_all.rb +++ b/lib/efl/elementary_all.rb @@ -34,7 +34,7 @@ require 'efl/elm/elm_flip' require 'efl/elm/elm_flipselector' require 'efl/elm/elm_focus' require 'efl/elm/elm_frame' -#require 'efl/elm/elm_gengrid' +require 'efl/elm/elm_gengrid' require 'efl/elm/elm_genlist' #require 'efl/elm/elm_gesture_layer' #require 'efl/elm/elm_getting_started' diff --git a/lib/efl/elm/elm_gengrid.rb b/lib/efl/elm/elm_gengrid.rb new file mode 100644 index 0000000..15c6c40 --- /dev/null +++ b/lib/efl/elm/elm_gengrid.rb @@ -0,0 +1,79 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'efl/elm/elm_object' +require 'efl/elm/elm_object_item' +require 'efl/native/elm/elm_gengrid' +# +module Efl + # + module Elm + # + class ElmGenGrid < ElmObject + # + include Helper + constructor :elm_gengrid_add + search_prefixes 'elm_gengrid_' + # + def item_append itc, data, parent, flags, cb, cbdata + ElmObjectItem.new Native.elm_gengrid_item_append @ptr, itc, data, parent, flags, cb, cbdata + end + # + def item_prepend itc, data, parent, flags, cb, cbdata + ElmObjectItem.new Native.elm_gengrid_item_append @ptr, itc, data, parent, flags, cb, cbdata + end + # + def item_insert_before itc, data, parent, before, flags, cb, cbdata + ElmObjectItem.new Native.elm_gengrid_item_insert_before @ptr, itc, data, parent, before, flags, cb, cbdata + end + # + def item_insert_after itc, data, parent, before, flags, cb, cbdata + ElmObjectItem.new Native.elm_gengrid_item_insert_after @ptr, itc, data, parent, before, flags, cb, cbdata + end + # + def item_sorted_insert itc, data, parent, flags, cmp, cb, cbdata + ElmObjectItem.new Native.elm_gengrid_item_sorted_insert @ptr, itc, data, parent, flags, cmp, cb, cbdata + end + # + def selected_item_get + ElmObjectItem.new Native.elm_gengrid_selected_item_get @ptr + end + alias :selected_item :selected_item_get + # + def at_xy_item_get x, y + @ri0 ||= FFI::MemoryPointer.new :int + i = ElmObjectItem.new ElmObjectItem.new Native.elm_gengrid_first_item_get @ptr, x, y, @ri0 + [ @ri0.read_int, i ] + end + # + def first_item_get + ElmObjectItem.new Native.elm_gengrid_first_item_get @ptr + end + alias :first_item :first_item_get + # + def last_item_get + ElmObjectItem.new Native.elm_gengrid_last_item_get @ptr + end + alias :last_item :last_item_get + # + def item_next_get it + ElmObjectItem.new Native.elm_gengrid_item_next_get it + end + alias :item_next :item_next_get + # + def item_prev_get it + ElmObjectItem.new Native.elm_gengrid_item_prev_get it + end + alias :item_prev :item_prev_get + # + def item_parent_get it + ElmObjectItem.new Native.elm_gengrid_item_parent_get it + end + alias :item_parent :item_parent_get + # + end + # + end +end +# +# EOF diff --git a/lib/efl/native/elm/elm_gengrid.rb b/lib/efl/native/elm/elm_gengrid.rb new file mode 100644 index 0000000..250822e --- /dev/null +++ b/lib/efl/native/elm/elm_gengrid.rb @@ -0,0 +1,189 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'efl/native' +require 'efl/native/elementary' +# +module Efl + # + module ElmGenGrid + # + FCT_PREFIX = 'elm_gengrid_' 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' + # + # TYPEDEFS + # typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class; + typedef :pointer, :elm_gengrid_item_class + # typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func; + typedef :pointer, :elm_gengrid_item_class_func + # + # CALLBACKS + # typedef char *(*Elm_Gengrid_Item_Text_Get_Cb) (void *data, Evas_Object *obj, const char *part); + callback :elm_gengrid_item_text_get_cb, [ :pointer, :evas_object, :string ], :string + # typedef Evas_Object *(*Elm_Gengrid_Item_Content_Get_Cb) (void *data, Evas_Object *obj, const char *part); + callback :elm_gengrid_item_content_get_cb, [ :pointer, :evas_object, :string ], :evas_object + # typedef Eina_Bool (*Elm_Gengrid_Item_State_Get_Cb) (void *data, Evas_Object *obj, const char *part); + callback :elm_gengrid_item_state_get_cb, [ :pointer, :evas_object, :string ], :bool + # typedef void (*Elm_Gengrid_Item_Del_Cb) (void *data, Evas_Object *obj); + callback :elm_gengrid_item_del_cb, [ :pointer, :evas_object ], :void + # + # FUNCTIONS + fcts = [ + # EAPI Evas_Object *elm_gengrid_add(Evas_Object *parent); + [ :elm_gengrid_add, [ :evas_object ], :evas_object ], + # EAPI void elm_gengrid_item_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h); + [ :elm_gengrid_item_size_set, [ :evas_object, :int, :int ], :void ], + # EAPI void elm_gengrid_item_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h); + [ :elm_gengrid_item_size_get, [ :evas_object, :pointer, :pointer ], :void ], + # EAPI void elm_gengrid_group_item_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h); + [ :elm_gengrid_group_item_size_set, [ :evas_object, :int, :int ], :void ], + # EAPI void elm_gengrid_group_item_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h); + [ :elm_gengrid_group_item_size_get, [ :evas_object, :pointer, :pointer ], :void ], + # EAPI void elm_gengrid_align_set(Evas_Object *obj, double align_x, double align_y); + [ :elm_gengrid_align_set, [ :evas_object, :double, :double ], :void ], + # EAPI void elm_gengrid_align_get(const Evas_Object *obj, double *align_x, double *align_y); + [ :elm_gengrid_align_get, [ :evas_object, :pointer, :pointer ], :void ], + # EAPI void elm_gengrid_reorder_mode_set(Evas_Object *obj, Eina_Bool reorder_mode); + [ :elm_gengrid_reorder_mode_set, [ :evas_object, :bool ], :void ], + # EAPI Eina_Bool elm_gengrid_reorder_mode_get(const Evas_Object *obj); + [ :elm_gengrid_reorder_mode_get, [ :evas_object ], :bool ], + # EAPI Elm_Object_Item *elm_gengrid_item_append(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Evas_Smart_Cb func, const void *func_data); + [ :elm_gengrid_item_append, [ :evas_object, :elm_gengrid_item_class, :pointer, :evas_smart_cb, :pointer ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_gengrid_item_prepend(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Evas_Smart_Cb func, const void *func_data); + [ :elm_gengrid_item_prepend, [ :evas_object, :elm_gengrid_item_class, :pointer, :evas_smart_cb, :pointer ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_gengrid_item_insert_before(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Object_Item *relative, Evas_Smart_Cb func, const void *func_data); + [ :elm_gengrid_item_insert_before, [ :evas_object, :elm_gengrid_item_class, :pointer, :elm_object_item, :evas_smart_cb, :pointer ], + :elm_object_item ], + # EAPI Elm_Object_Item *elm_gengrid_item_insert_after(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Object_Item *relative, Evas_Smart_Cb func, const void *func_data); + [ :elm_gengrid_item_insert_after, [ :evas_object, :elm_gengrid_item_class, :pointer, :elm_object_item, :evas_smart_cb, :pointer ], + :elm_object_item ], + # EAPI Elm_Object_Item *elm_gengrid_item_sorted_insert(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data); + [ :elm_gengrid_item_sorted_insert, [ :evas_object, :elm_gengrid_item_class, :pointer, :eina_compare_cb, :evas_smart_cb, :pointer ], + :elm_object_item ], + # EAPI Elm_Object_Item *elm_gengrid_item_direct_sorted_insert(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data); + [ :elm_gengrid_item_direct_sorted_insert, [ :evas_object, :elm_gengrid_item_class, :pointer, :eina_compare_cb, :evas_smart_cb, :pointer ], + :elm_object_item ], + # EAPI void elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select); + [ :elm_gengrid_always_select_mode_set, [ :evas_object, :bool ], :void ], + # EAPI Eina_Bool elm_gengrid_always_select_mode_get(const Evas_Object *obj); + [ :elm_gengrid_always_select_mode_get, [ :evas_object ], :bool ], + # EAPI void elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select); + [ :elm_gengrid_no_select_mode_set, [ :evas_object, :bool ], :void ], + # EAPI Eina_Bool elm_gengrid_no_select_mode_get(const Evas_Object *obj); + [ :elm_gengrid_no_select_mode_get, [ :evas_object ], :bool ], + # EAPI void elm_gengrid_multi_select_set(Evas_Object *obj, Eina_Bool multi); + [ :elm_gengrid_multi_select_set, [ :evas_object, :bool ], :void ], + # EAPI Eina_Bool elm_gengrid_multi_select_get(const Evas_Object *obj); + [ :elm_gengrid_multi_select_get, [ :evas_object ], :bool ], + # EAPI void elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce); + [ :elm_gengrid_bounce_set, [ :evas_object, :bool, :bool ], :void ], + # EAPI void elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce); + [ :elm_gengrid_bounce_get, [ :evas_object, :pointer, :pointer ], :void ], + # EAPI void elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel); + [ :elm_gengrid_page_relative_set, [ :evas_object, :double, :double ], :void ], + # EAPI void elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel); + [ :elm_gengrid_page_relative_get, [ :evas_object, :pointer, :pointer ], :void ], + # EAPI void elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize); + [ :elm_gengrid_page_size_set, [ :evas_object, :int, :int ], :void ], + # EAPI void elm_gengrid_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber); + [ :elm_gengrid_current_page_get, [ :evas_object, :pointer, :pointer ], :void ], + # EAPI void elm_gengrid_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber); + [ :elm_gengrid_last_page_get, [ :evas_object, :pointer, :pointer ], :void ], + # EAPI void elm_gengrid_page_show(const Evas_Object *obj, int h_pagenumber, int v_pagenumber); + [ :elm_gengrid_page_show, [ :evas_object, :int, :int ], :void ], + # EAPI void elm_gengrid_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber); + [ :elm_gengrid_page_bring_in, [ :evas_object, :int, :int ], :void ], + # EAPI void elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool setting); + [ :elm_gengrid_horizontal_set, [ :evas_object, :bool ], :void ], + # EAPI Eina_Bool elm_gengrid_horizontal_get(const Evas_Object *obj); + [ :elm_gengrid_horizontal_get, [ :evas_object ], :bool ], + # EAPI Elm_Object_Item *elm_gengrid_first_item_get(const Evas_Object *obj); + [ :elm_gengrid_first_item_get, [ :evas_object ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_gengrid_last_item_get(const Evas_Object *obj); + [ :elm_gengrid_last_item_get, [ :evas_object ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_gengrid_item_next_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_next_get, [ :elm_object_item ], :elm_object_item ], + # EAPI Elm_Object_Item *elm_gengrid_item_prev_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_prev_get, [ :elm_object_item ], :elm_object_item ], + # EAPI void elm_gengrid_item_update(Elm_Object_Item *it); + [ :elm_gengrid_item_update, [ :elm_object_item ], :void ], + # EAPI const Elm_Gengrid_Item_Class *elm_gengrid_item_item_class_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_item_class_get, [ :elm_object_item ], :elm_gengrid_item_class ], + # EAPI void elm_gengrid_item_item_class_set(Elm_Object_Item *it, const Elm_Gengrid_Item_Class *gic); + [ :elm_gengrid_item_item_class_set, [ :elm_object_item, :elm_gengrid_item_class ], :void ], + # EAPI void elm_gengrid_item_pos_get(const Elm_Object_Item *it, unsigned int *x, unsigned int *y); + [ :elm_gengrid_item_pos_get, [ :elm_object_item, :pointer, :pointer ], :void ], + # EAPI void elm_gengrid_item_selected_set(Elm_Object_Item *it, Eina_Bool selected); + [ :elm_gengrid_item_selected_set, [ :elm_object_item, :bool ], :void ], + # EAPI Eina_Bool elm_gengrid_item_selected_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_selected_get, [ :elm_object_item ], :bool ], + # EAPI const Evas_Object *elm_gengrid_item_object_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_object_get, [ :elm_object_item ], :evas_object ], + # EAPI void elm_gengrid_item_show(Elm_Object_Item *it); + [ :elm_gengrid_item_show, [ :elm_object_item ], :void ], + # EAPI void elm_gengrid_item_bring_in(Elm_Object_Item *it); + [ :elm_gengrid_item_bring_in, [ :elm_object_item ], :void ], + # EAPI void elm_gengrid_item_tooltip_text_set(Elm_Object_Item *it, const char *text); + [ :elm_gengrid_item_tooltip_text_set, [ :elm_object_item, :string ], :void ], + # EAPI void elm_gengrid_item_tooltip_content_cb_set(Elm_Object_Item *it, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb); + [ :elm_gengrid_item_tooltip_content_cb_set, [ :elm_object_item, :elm_tooltip_item_content_cb, :pointer, :evas_smart_cb ], :void ], + # EAPI void elm_gengrid_item_tooltip_unset(Elm_Object_Item *it); + [ :elm_gengrid_item_tooltip_unset, [ :elm_object_item ], :void ], + # EAPI void elm_gengrid_item_tooltip_style_set(Elm_Object_Item *it, const char *style); + [ :elm_gengrid_item_tooltip_style_set, [ :elm_object_item, :string ], :void ], + # EAPI const char *elm_gengrid_item_tooltip_style_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_tooltip_style_get, [ :elm_object_item ], :string ], + # EAPI Eina_Bool elm_gengrid_item_tooltip_window_mode_set(Elm_Object_Item *it, Eina_Bool disable); + [ :elm_gengrid_item_tooltip_window_mode_set, [ :elm_object_item, :bool ], :bool ], + # EAPI Eina_Bool elm_gengrid_item_tooltip_window_mode_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_tooltip_window_mode_get, [ :elm_object_item ], :bool ], + # EAPI void elm_gengrid_item_cursor_set(Elm_Object_Item *it, const char *cursor); + [ :elm_gengrid_item_cursor_set, [ :elm_object_item, :string ], :void ], + # EAPI const char *elm_gengrid_item_cursor_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_cursor_get, [ :elm_object_item ], :string ], + # EAPI void elm_gengrid_item_cursor_unset(Elm_Object_Item *it); + [ :elm_gengrid_item_cursor_unset, [ :elm_object_item ], :void ], + # EAPI void elm_gengrid_item_cursor_style_set(Elm_Object_Item *it, const char *style); + [ :elm_gengrid_item_cursor_style_set, [ :elm_object_item, :string ], :void ], + # EAPI const char *elm_gengrid_item_cursor_style_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_cursor_style_get, [ :elm_object_item ], :string ], + # EAPI void elm_gengrid_item_cursor_engine_only_set(Elm_Object_Item *it, Eina_Bool engine_only); + [ :elm_gengrid_item_cursor_engine_only_set, [ :elm_object_item, :bool ], :void ], + # EAPI Eina_Bool elm_gengrid_item_cursor_engine_only_get(const Elm_Object_Item *it); + [ :elm_gengrid_item_cursor_engine_only_get, [ :elm_object_item ], :bool ], + # EAPI void elm_gengrid_clear(Evas_Object *obj); + [ :elm_gengrid_clear, [ :evas_object ], :void ], + # EAPI Elm_Object_Item *elm_gengrid_selected_item_get(const Evas_Object *obj); + [ :elm_gengrid_selected_item_get, [ :evas_object ], :elm_object_item ], + # EAPI const Eina_List *elm_gengrid_selected_items_get(const Evas_Object *obj); + [ :elm_gengrid_selected_items_get, [ :evas_object ], :eina_list ], + # EAPI void elm_gengrid_filled_set(Evas_Object *obj, Eina_Bool fill); + [ :elm_gengrid_filled_set, [ :evas_object, :bool ], :void ], + # EAPI Eina_Bool elm_gengrid_filled_get(const Evas_Object *obj); + [ :elm_gengrid_filled_get, [ :evas_object ], :bool ], + # EAPI Elm_Gengrid_Item_Class *elm_gengrid_item_class_new(void); + [ :elm_gengrid_item_class_new, [ ], :elm_gengrid_item_class ], + # EAPI void elm_gengrid_item_class_free(Elm_Gengrid_Item_Class *itc); + [ :elm_gengrid_item_class_free, [ :elm_gengrid_item_class ], :void ], + # EAPI void elm_gengrid_item_class_ref(Elm_Gengrid_Item_Class *itc); + [ :elm_gengrid_item_class_ref, [ :elm_gengrid_item_class ], :void ], + # EAPI void elm_gengrid_item_class_unref(Elm_Gengrid_Item_Class *itc); + [ :elm_gengrid_item_class_unref, [ :elm_gengrid_item_class ], :void ], + ] + # + attach_fcts fcts + # + end +end +# +# EOF diff --git a/tools/genruby.rb b/tools/genruby.rb index 81a5447..bc2d1fe 100755 --- a/tools/genruby.rb +++ b/tools/genruby.rb @@ -399,7 +399,7 @@ libs << elm_h('elm_flipselector.h', 'ElmFlipSelector') libs << elm_h('elm_focus.h', 'ElmFocus') libs << elm_h('elm_fonts.h', 'ElmFonts', ["#{NATIVE}/eina_hash","#{NATIVE}/elementary"]) libs << elm_h('elm_frame.h', 'ElmFrame') -#libs << elm_h('elm_gengrid.h', 'ElmGenGrid') +libs << elm_h('elm_gengrid.h', 'ElmGenGrid') libs << elm_h('elm_genlist.h', 'ElmGenList', ["#{NATIVE}/elementary","#{NATIVE}/elm/elm_list","#{NATIVE}/elm/elm_scroller"]) #libs << elm_h('elm_gesture_layer.h', 'ElmGestureLayer') #libs << elm_h('elm_glview.h', 'ElmGLView') |